在EMR群集中,我有1个主,1个核心和4个任务节点。看来纱线不仅在任务节点上,而且在核心节点上创建了CPU绑定的火花执行者。是否有任何选择来防止它(例如'Yarn.App.mapreduce.AM.Labels'确实指示YARN仅在Master或Core上创建App Manager(。
am在容器中运行。您最多可以指定要运行AMS的节点。
这些裁判应为您提供帮助:
- https://docs.hortonworks.com/hdpdocuments/hdp2/hdp2/hdp-2.4.2/bk_yarn_resource_mgt/content/content/configuring_node_labels.html
- 在纱线集群中的特定节点上运行我自己的应用程序主
您可以通过以下两种方法在核心节点上启动执行器容器:
:在EMR核心节点中,将纱线节点标签"核心"作为非排他性分区。由于核心节点是非排他性分区,可以在此处启动另一个容器。为了防止在核心节点上启动执行程序容器,您可以将其"独家"分区做到。
有两种节点分区:
独家:容器将分配给具有匹配节点分区的节点。(例如,询问分区=" x"将分配给节点=" x",询问默认分区将分配给默认分区节点(。
非排他性:如果一个分区是非排他性的,则它将共享空闲资源到请求默认分区的容器。
资料来源:https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/nodelabel.html
您还可以在此处找到如何添加或修改节点标签。处理它的另一种方法是将YARN节点标签分配给所有任务节点作为"任务",并在Spark submit命令中使用以下配置。
spark.yarn.am.nodeLabelExpressio='CORE'
spark.yarn.executor.nodeLabelExpression='TASK'