在 HDP 多节点集群上使用 yarn-client 的 Spark 仅在同一个节点上启动执行程序

Spark with yarn-client on HDP multi nodes cluster only starts executors on the same single node

我已经在 EC2 上安装了带有 Spark 和 Yarn 的多节点 HDP 集群

每个节点都是DataNodes。

Node3 是唯一的 Spark Client 节点。

每次我 运行 使用 yarn-client 或 yarn-cluster 模式启动作业时,它总是会在 node3 上初始化 spark 执行器。而我希望作业使用每个节点。

我缺少什么配置?

我在ambari中设置了MASTER="yarn-client",但是并没有解决问题。

感谢您的帮助。

编辑:当我 运行 一个带有 30 个执行程序的火花 shell 时,它在 node3 上启动了 12 个执行程序,它占用了集群的 95%。所以我的猜测是 node1 和 node2 没有被 yarn 集群考虑用于分配像 spark containers/executors.

这样的资源

不知道我应该修改哪个 conf 以将 node1 和 node2 添加到集群资源中

好吧我真的很笨

我必须将每个节点添加为 Yarn NodeManager。这样,我的 spark 作业就可以很好地分布在集群的每个节点上。

抱歉,这太蠢了