Spark上的YARN无法启动NodeManager和ResourceManager

时间:2015-09-12 23:07:26

标签: apache-spark yarn

我们的问题:(我们正在运行纱线客户端)

  • 这两种情况都会发生./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更改,但每个作业都输出此错误
      

    错误ExecutorLauncher:无法连接到LOCALHOST的驱动程序:< port_number>,正在重试...

  • 我们在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 master与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,正在重试......

2 个答案:

答案 0 :(得分:0)

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

您要做的是更新 <input type="number" step="0.01" value='0.00' placeholder='0.00'>文件中的spark.driver.hostspark.driver.port,以及执行人可以联系的内容。

答案 1 :(得分:0)

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

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

export SPARK_LOCAL_IP=xxx.xxx.xxx.xxx

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