[英]Remote spark-submit not working with YARN
我正在尝试使用spark-submit脚本从我的Spark群集之外的其他服务器(运行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的远程服务器中设置了yarn配置,如下所示:
<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
我怀疑您的YARN上的应用程序主控无法联系您的本地主机是一个问题。 您是否检查过已接受的应用程序是否附有任何日志? 您可能需要将SPARK_LOCAL_IP
环境变量设置为可群集寻址的IP地址,以便YARN可以与您联系。
您是否尝试过运行yarn-cluster模式,以便驱动程序实际上将在YARN群集上运行? 如果您的本地主机离群集较远,可以避免通信延迟,那么这可能是一个更好的选择。
我可以想到两件事:
spark-submit应当在本地框中而不是远程框中查找HADOOP_CONF_DIR或YARN_CONF_DIR env变量,以查找yarn-site.xml的位置。
如果完成上述操作,但仍然遇到相同的问题,则可能需要研究网络防火墙的设置;请参阅图11。 spark将通过多个端口与YARN RM(等等)进行通信,Spark通过AKKA群集进行内部通信,并且它们的端口是相当随机的。 最好尝试先打开所有tcp端口,看看是否可行。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.