我有一个YARN集群,其中有一个运行资源管理器的主节点和两个其他节点。我能够在"纱线集群"模式下从客户端机器提交一个spark应用程序。有没有一种方法可以配置集群中的哪个节点启动Spark应用程序主机?
我问这个问题是因为如果应用程序主节点在主节点中启动,它可以正常工作,但如果它在其他节点中启动我会得到这个:
正在重试连接到服务器:0.0.0.0/0.0.0.0:8030。
并且该作业被简单地接受并且从不运行
如果您使用的是足够新的YARN版本(根据Spark文档,2.6或更高版本),则可以在YARN中使用节点标签。
本Hortonworks指南将介绍如何将节点标签应用于YARN NodeManagers。
如果你使用Spark 1.6或更新版本,那么这个JIRA增加了对在Spark中使用YARN节点标签的支持;然后只需传递spark.yarn.am.nodeLabelExpression
来限制AppMaster节点的放置,如果需要,则传递spark.yarn.executor.nodeLabelExpression
用于执行器的放置。