【发布时间】: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