EMR 集群中 CORE 节点上的执行器

Executors on CORE node in EMR cluster

在 EMR 集群中,我有 1 个 MASTER、1 个 CORE 和 4 个 TASK 节点。似乎 YARN 不仅在 TASK 节点上而且在 CORE 节点上都在创建 CPU 绑定的 SPARK 执行器。是否有任何选项可以防止它(如 'yarn.app.mapreduce.am.labels' 指示 YARN 仅在 MASTER 或 CORE 上创建 APP MANAGER)。

AM 运行s 在容器内。最多,您可以指定 运行 您的 AM 在哪个节点上。

这些参考应该对您有所帮助:

您可以使用下面提到的这两种方法来阻止在核心节点上启动执行程序容器:

  • 在 EMR 核心节点中,纱线节点标签 'CORE' 作为非独占分区。因为核心节点是非独占分区,所以可以在那里启动另一个容器。为防止在核心节点上启动执行程序容器,您可以将其设为 'exclusive' 分区。

    有两种节点分区:

    Exclusive:容器将分配给与节点分区完全匹配的节点。 (例如询问partition=“x”将分配给partition=“x”的节点,询问DEFAULT分区将分配给DEFAULT分区节点)

    非独占:如果一个分区是非独占的,它将空闲资源共享给请求默认分区的容器。

    来源:https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/NodeLabel.html
    您还可以在此处找到如何添加或修改节点标签。

  • 另一种处理它的方法是将 yarn 节点标签分配给所有任务节点作为 'TASK' 并在 spark 提交命令中使用以下配置。

        spark.yarn.am.nodeLabelExpressio='CORE'
        spark.yarn.executor.nodeLabelExpression='TASK'