【问题标题】:Spark submit YARN mode HADOOP_CONF_DIR contentsSpark提交YARN模式HADOOP_CONF_DIR内容
【发布时间】:2016-11-23 18:43:01
【问题描述】:

我正在尝试在 YARN 模式下使用 spark 提交在 hadoop 集群上启动 spark 任务。

我正在从我的开发机器上启动 spark-submit。

根据Running Spark On YARN docs,我应该在环境变量HADOOP_CONF_DIRYARN_CONF_DIR 上提供hadoop 集群配置的路径。这就是棘手的地方:如果我将任务发送到远程 YARN 服务,为什么这些文件夹必须存在于我的本地计算机上?这是否意味着 spark-submit 必须位于集群内部,因此我无法远程启动 spark 任务?如果没有,我应该用什么填充这些文件夹?我应该从任务管理器服务所在的YARN集群节点复制hadoop配置文件夹吗?

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn


    【解决方案1】:

    1) 提交作业时,Spark 需要知道它连接到什么。解析文件并使用所需的配置连接到 Hadoop 集群。请注意,在文档中他们说它是客户端配置(就在第一句话中),这意味着您实际上不需要所有配置来连接到文件中的集群(连接到非- 具有极简配置的安全 Hadoop 集群)您至少需要以下配置:

    • fs.defaultFS(如果您打算从 HDFS 读取数据)
    • dfs.nameservices
    • yarn.resourcemanager.hostnameyarn.resourcemanager.address
    • yarn.application.classpath
    • (可能需要其他,具体取决于配置)

    您可以通过在您提交的作业的代码中设置相同的设置来避免文件:

    SparkConf sparkConfiguration = new SparkConf();
    sparkConfiguration.set("spark.hadoop.fs.defaultFS", "...");
    ...
    

    2)Spark submit 可以位于任何机器上,不一定在集群上,只要它知道如何连接到集群(你甚至可以从 Eclipse 运行提交,无需安装任何东西,但项目依赖项,相关到 Spark)。

    3) 您应该使用以下内容填充配置文件夹:

    • core-site.xml
    • yarn-site.xml
    • hdfs-site.xml
    • mapred-site.xml

    从服务器复制这些文件是最简单的方法。在您可以删除一些 spark-submit 不需要或可能对安全敏感的配置之后。

    【讨论】:

    • 非常感谢。我一直在尝试解决这个问题,文档很清楚,但是有一些用例,我混淆了一些东西。我真的需要一个很好的总结:-)
    • mapred-site 需要 Spark 吗??
    • @cricket_007 原则上它不是。我会尽快测试并报告。
    猜你喜欢
    • 2015-09-25
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2022-01-26
    • 2016-01-18
    • 1970-01-01
    • 2015-08-20
    • 2023-04-05
    相关资源
    最近更新 更多