【问题标题】:Spark over Yarn - Incorrect Application Master selectionSpark over Yarn - Application Master 选择不正确
【发布时间】:2015-02-06 18:59:08
【问题描述】:

我正在尝试使用以下命令在 Yarn 上使用 Spark 启动一些作业(这只是一个示例,实际上我使用的是不同数量的内存和内核):

./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 选择了一个不是 Spark Master 的节点作为 Application Master。这是一个问题,因为真正的 Spark Master 节点被强制参与分布式计算,导致不必要的网络数据传输(当然,因为 Spark Master 没有数据可开始)。

对于我在测试中看到的情况,Yarn 以完全随机的方式选择 AM,我无法找到强制他选择 Spark Master 作为 AM 的方法。

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

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn


    【解决方案1】:

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

    你可以做的是在运行 NameNode 的节点上以 yarn-client 模式运行 master,但这可能不是你想要的。

    另一种方法是创建您自己的 Spark 客户端(您可以在其中指定使用 YARN API 来为您的 Spark Master 优先选择某些节点而不是其他节点)。

    【讨论】:

      猜你喜欢
      • 2016-07-17
      • 1970-01-01
      • 2014-08-27
      • 2019-12-04
      • 2018-10-28
      • 2014-11-04
      • 2019-05-14
      • 1970-01-01
      • 2018-09-09
      相关资源
      最近更新 更多