远程spark-submit不与YARN合作

时间:2015-07-08 16:59:05

标签: apache-spark yarn pyspark

我正在尝试使用spark-submit脚本从我的Spark Cluster之外的其他服务器(运行spark 1.4.0,hadoop 2.4.0和YARN)提交spark作业:

spark/bin/spark-submit --master yarn-client --executor-memory 4G myjobScript.py

我们的想法是,我的应用程序永远不会从接受的状态转移,它会坚持下去:

15/07/08 16:49:40 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:41 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:42 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:43 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:44 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:45 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:46 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:47 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:48 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)
15/07/08 16:49:49 INFO Client: Application report for application_1436314873375_0030 (state: ACCEPTED)

但是如果我在我的集​​群的主服务器上使用spark-submit执行相同的脚本,它就能正常运行。

我已经在$ YARN_CONF_DIR / yarn-site.xml中的远程服务器中设置了纱线配置,如下所示:

 <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>54.54.54.54</value>
 </property>

 <property>
   <name>yarn.resourcemanager.address</name>
   <value>54.54.54.54:8032</value>
   <description>Enter your ResourceManager hostname.</description>
 </property>

 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>54.54.54.54:8030</value>
   <description>Enter your ResourceManager hostname.</description>
 </property>

 <property>
   <name>yarn.resourcemanager.resourcetracker.address</name>
   <value>54.54.54.54:8031</value>
   <description>Enter your ResourceManager hostname.</description>
 </property>

其中54.54.54.54是我的resourcemanager节点的IP。

为什么会这样?我是否必须在YARN中配置其他内容才能接受远程提交?或者我错过了什么?

非常感谢

JG

2 个答案:

答案 0 :(得分:2)

我怀疑YARN上的应用程序主机无法联系到您的本地主机是一个问题。您是否检查过您接受的应用程序是否附有任何日志?您可能需要将SPARK_LOCAL_IP环境变量设置为群集可寻址的IP地址,以便YARN可以回复给您。

您是否尝试过运行纱线群集模式,以便您的驱动程序实际上会在您的YARN群集上运行?如果localhost远离您的群集以避免通信延迟,那么这可能是更好的选择。

答案 1 :(得分:1)

我可以想到两件事:

  1. spark-submit应该在本地方框中查找关于yarn-site.xml位置的HADOOP_CONF_DIR或YARN_CONF_DIR env变量,而不是远程方框。

  2. 如果完成上述操作,仍然遇到同样的问题,您可能需要查看网络防火墙设置; spark将通过多个端口与YARN RM(等)通信,而Spark内部通过AKKA集群进行通信,并且它们的端口非常随机。最好先尝试打开所有tcp端口,看看是否有效。

  3. 希望这可以提供帮助。