【问题标题】:Executors on CORE node in EMR clusterEMR 集群中 CORE 节点上的 Executors
【发布时间】:2019-10-04 23:52:48
【问题描述】:

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

【问题讨论】:

  • 如果你不想要任何执行器,为什么 CORE 节点是集群的一部分?
  • 只有AM。我想运行许多 AM 和单个 master 是不够的。我不想让 CORE 上的执行者不为 AM 锁定资源。
  • AM 在容器内运行。最多,您可以指定在哪个节点上运行您的 AM。这些参考资料应该可以帮助您:docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.2/…stackoverflow.com/questions/29302659/…
  • 谢谢。我尝试过这个。它几乎奏效了,但出现了一些问题,如下所示:github.com/apache/spark/pull/11129。它应该在 YARN 2.8.0 中修复。到目前为止,亚马逊安装了 2.7.3。我会等待亚马逊的更新并再次测试它。
  • 年厕所。我已将其添加为答案。

标签: hadoop-yarn emr


【解决方案1】:

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

这些参考应该可以帮助你:

【讨论】:

    【解决方案2】:

    您可以通过以下两种方法阻止在核心节点上启动执行器容器:

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

       有两种节点分区:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      相关资源
      最近更新 更多