首页 文章

Spark over Yarn - 不正确的Application Master选择

提问于
浏览
2

我正尝试使用以下命令使用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 \

当我查看Web UI以查看真正发生的事情时,我注意到YARN正在选择Application Master作为不是Spark Master的节点 . 这是一个问题,因为真正的Spark Master节点强行参与分布式计算,导致不必要的网络数据传输(因为,当然,Spark主站没有数据可以开始) .

对于我在测试中看到的内容,Yarn以完全随机的方式选择AM,我找不到强迫他选择Spark Master作为AM的方法 .

我的集群由4个节点(3个Spark Slaves,1个Spark Master)组成,具有64GB的总RAM和32个内核,基于HDP 2.4与HortonWorks构建 . Spark Master只托管namenode,三个slave是datanode .

1 回答

  • 0

    您希望能够指定一个没有任何DataNode的节点来运行Spark Master . 据我所知,这是不可能开箱即用的 .

    你可以做的是在运行NameNode的节点上以纱线客户端模式运行master,但这可能不是你想要的 .

    另一种方法是创建自己的Spark Client(您指定使用YARN API来为Spark Master选择某些节点而不是其他节点) .

相关问题