【问题标题】:spark on yarn, Connecting to ResourceManager at /0.0.0.0:8032纱线上的火花,在 /0.0.0.0:8032 处连接到 ResourceManager
【发布时间】:2017-07-13 13:17:54
【问题描述】:

我在我的开发机器上编写了一个 spark 程序,这是一个 mac。 hadoop的版本是2.6,spark的版本是1.6.2。 hadoop集群有3个节点,当然都是在linux机器上。 我在idea IDE中以spark独立模式运行spark程序,它运行成功。但是现在,我把它改成yarn-client模式,还是不成功,提示如下:

...
2017-02-23 11:01:33,725-[HL] INFO main org.apache.hadoop.yarn.client.RMProxy - Connecting to ResourceManager at /0.0.0.0:8032
2017-02-23 11:01:34,839-[HL] INFO main org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2017-02-23 11:01:35,842-[HL] INFO main org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2017-02-23 11:01:36,847-[HL] INFO main org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2017-02-23 11:01:37,854-[HL] INFO main org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
...

我已经在项目的resources目录下添加了相应的配置文件。如果我把它做成一个jar包并使用spark-submit来运行这个程序,就可以了。现在,我想在 IDE 中以 yarn-client 模式运行这个程序,就像 spark 独立模式一样。我该如何解决这个问题?谢谢。

【问题讨论】:

    标签: java hadoop apache-spark hadoop-yarn


    【解决方案1】:

    确保 YARN 配置可供 Spark 在纱线模式下运行时使用。将core-site.xmlhdfs-site.xmlyarn-site.xml这几个文件添加到spark的conf目录下。
    还要确保yarn-site.xml 包含资源管理器的地址

    <property>
       <name>yarn.resourcemanager.address</name>
       <value>resource_manager_ip:8032</value>
    </property>
    

    【讨论】:

    • 你的意思是我应该在开发机器中使用与正在运行的纱线集群相同的配置吗?
    • 你希望 spark 使用哪个运行 yarn 环境的配置。如果你想在开发机器上运行yarn-client,你必须在开发机器上运行yarn,并且这些配置也必须复制到spark(或者设置YARN_CONF_DIR就可以了)或者提供远程yarn环境的conf可以通过开发机器中的火花访问。
    • 我做了以下但没有工作。 1.在我的开发机器上运行本地hadoop和spark,配置和远程hadoop和spark不一样。 2、将远程hadoop的配置复制到远程spark的conf目录下,包括yarn-site.xml, core-site.xml, hdfs-site.xml三个文件。 3、将远程hadoop的配置复制到本地spark的conf目录下,还包括yarn-site.xml, core-site.xml, hdfs-site.xml三个文件。 4.在我的项目中,我没有添加其他配置。
    • 转到http://resourcemanager:8088/conf 并检查属性yarn.resourcemanager.address。该值不应为0.0.0.0。如果它是一个有效的 IP 并且 Spark 仍在尝试连接到 0.0.0.0 的 Resourcemanager,那么 spark 没有读取正确的配置
    • 这有帮助。我正在使用 HDP 3.1,默认情况下 Ambari 有 yarn.resourcemanager.address=:8050。所以设置conf.set("spark.hadoop.yarn.resourcemanager.address", "HW01.co.local:8050") 之类的东西为我解决了这个问题(而不是仅仅为了让 spark 工作而更改集群的 YARN 配置)。
    【解决方案2】:

    像这样设置你的 conf 对象,它对我有用:

    conf = new SparkConf().setAppName(setup.getAppname).setMaster("yarn")
                .set("spark.hadoop.yarn.resourcemanager.hostname", "resourcemanager.fqdn")
                .set("spark.hadoop.yarn.resourcemanager.address", "resourcemanager.fqdn:8032")`
    

    字体:hortonworks.com

    【讨论】:

      猜你喜欢
      • 2016-01-29
      • 1970-01-01
      • 2015-10-18
      • 2016-10-11
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多