【问题标题】:Spark on YARN failure to launch NodeManager and ResourceManagerSpark on YARN 无法启动 NodeManager 和 ResourceManager
【发布时间】:2015-12-09 06:23:04
【问题描述】:

我们的问题:(我们正在运行 yarn-client)

  • 这发生在两个 ./spark-shell

    scala> sc.parallelize(1 to 1000).collect()
    

    和 ./pyspark

    >>> sc.parallelize([1,2,3,4]).collect()
    
  • 上述基本作业的shell输出输出此错误

    WARN YarnClientClusterScheduler:初始作业没有接受任何资源;检查您的集群 UI 以确保工作人员已注册并有足够的内存

  • 日志连续连续输出这一行:(time_stamp和port_number发生变化,但是每个job都输出这个错误

    错误 ExecutorLauncher:无法连接到本地主机上的驱动程序:,正在重试...

  • 我们在 spark-env.sh 中设置了 SPARK_LOCAL_IP=LOCALHOST(其他所有内容甚至都无法在 REPL 中实例化 sc,例如:ip_address、HOSTNAME 并完全注释掉)

我们的设置:

  • 在 spark-defaults.conf 和 spark-env.sh 中使用几乎所有默认 YARN 设置
  • 这是强大的硬件:
    • 每个节点 128 GB,
    • 16 核,
    • 2 TB 物理内存
  • Spark 主节点位于自己的节点上,ResourceManager 和 NodeManager(大约有 5 个数据节点)也是如此

错误: (在 REPL 中)

WARN YarnClientClusterScheduler:初始作业没有接受任何资源;检查您的集群 UI 以确保工作人员已注册并有足够的内存

(在 YARN 日志中)

15/09/12 13:03:00 INFO ExecutorLauncher:等待 Spark 驱动程序可访问。 15/09/12 13:03:00 错误 ExecutorLauncher: 无法连接到 LOCALHOST:45790 的驱动程序,正在重试...

【问题讨论】:

  • 你能分享一下用于启动它的 spark-submit 命令吗?

标签: apache-spark hadoop-yarn


【解决方案1】:

最后一个错误日志非常简洁:执行程序正在尝试联系 localhost:45790 上的驱动程序,但它没有在那里侦听。

您要做的是将/path/to/spark/conf/spark-default.conf 文件中的spark.driver.hostspark.driver.port 更新为您的执行人可以联系的内容。

【讨论】:

    【解决方案2】:

    您实际上应该将 SPARK_LOCAL_IP 设置为您的本地主机 IP(环回 IP 以外的一个)

    所以如果你的ip是xxx.xxx.xxx.xxx

    export SPARK_LOCAL_IP=xxx.xxx.xxx.xxx
    

    然后确保驱动程序确实在运行

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 2019-07-25
      • 2013-07-27
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      相关资源
      最近更新 更多