我正试图通过以下命令使用spark-over-yarn来启动一些作业(这只是一个示例,实际上我使用的是不同数量的内存和内核):
./bin/spark-submit --class org.mypack.myapp \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
lib/myapp.jar \
当我查看webui以了解引擎盖下到底发生了什么时,我注意到yarn正在挑选一个不是spark主节点的应用程序主节点。这是一个问题,因为真正的spark主节点被强制卷入分布式计算,导致不必要的数据网络传输(当然,spark主节点没有数据可开始)。
就我在测试中所看到的,纱是挑选在一个完全随机的方式,我找不到一个办法,迫使他挑选Spark大师作为我。
我的集群由4个节点(3个spark从节点,1个spark主节点)组成,总内存64gb,32核,基于hdp2.4和hortonworks构建。spark主机只托管namenode,三个从机是datanode。
1条答案
按热度按时间5vf7fwbs1#
您希望能够指定一个没有任何datanodes的节点来运行spark master。据我所知,这是不可能开箱即用的。
您可以在运行namenode的节点上以客户机模式运行master,但这可能不是您想要的。
另一种方法是创建您自己的spark客户机(在这里您指定使用yarn-api为spark主节点选择某些节点而不是其他节点)。