在EMR集群中,我有1个MASTER,1个CORE和4个TASK节点。似乎YARN不仅在TASK节点上创建CPU绑定SPARK执行器,而且在CORE节点上创建CPU绑定SPARK执行器。是否有任何阻止它的选项(如'yarn.app.mapreduce.am.labels'指示YARN仅在MASTER或CORE上创建APP MANAGER)。
答案 0 :(得分:1)
AM在容器内运行。最多可以指定运行AM的节点。
这些参考资料可以帮助您:
答案 1 :(得分:0)
您可以使用以下两种方法来防止在核心节点上启动执行程序容器:
在EMR中,核心节点将纱线节点标签“ CORE”作为非专有分区。由于核心节点是非排他性分区,因此可以在此处启动另一个容器。为了防止在核心节点上启动执行程序容器,可以将其设置为“专有”分区。
有两种类型的节点分区:
独占:容器将分配给节点分区完全匹配的节点。 (例如,将Asking partition =“ x”分配给具有partition =“ x”的节点,将DEFAULT分区分配给DEFAULT分区节点。)
非排他性:如果分区是非排他性的,它将与请求DEFAULT分区的容器共享空闲资源。
来源:https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/NodeLabel.html
您还可以在此处找到如何添加或修改节点标签。
另一种处理方法是将纱线节点标签分配给所有任务节点为“任务”,并在spark Submit命令中使用以下配置。
spark.yarn.am.nodeLabelExpressio='CORE'
spark.yarn.executor.nodeLabelExpression='TASK'