EMR上节点类型

Task nodes

您可以使用task nodes来增强并行计算任务的能力,例如MapReduce task和 Spark executor。任务节点不运行Data Node守护进程,也不将数据存储在 HDFS 中。与core node一样,可以通过将EC2 实例添加到现有instance group或修改instance fleet的目标容量来将task node添加到集群。

通过instance group配置,最多可以拥有 48 个任务实例组。通过这种方式添加实例组的功能,可以混合使用 EC2 实例类型和定价选项,例如按需实例和 Spot 实例。这使您能够灵活地以经济高效的方式响应工作负载需求。

通过instance fleet配置,内置了混合实例类型和购买选项的功能,因此只有一个任务实例队列。

由于 Spot 实例通常用于运行task nodes,因此EMR 具有用于调度 YARN 作业的默认功能,以便当 Spot 实例上运行的任务节点终止时,运行的作业不会失败。 EMR 通过允许application master仅在core node上运行来实现此目的。application master控制正在运行的作业,并且需要在作业的生命周期内保持活动状态。

5.19.0 及更高版本使用内置的 YARN 节点标签 功能来实现这个功能。默认情况下会配置“yarn-site”和“capacity-scheduler”,以便 YARN capacity-scheduler 和fair-scheduler 利用节点标签。 EMR 自动使用“CORE”标签来标记核心节点,并设置属性,以便仅在具有 CORE 标签的节点上调度application master。手动修改yarn-site和capacity-scheduler 配置中的相关属性,或直接修改关联的 XML 文件中的相关属性,可能会破坏此功能或修改此功能。

从 Amazon EMR 6.x 版本系列开始,YARN node label功能默认处于禁用状态。默认情况下,application master可以在核心节点和任务节点上运行。您可以通过配置以下属性来启用 YARN 节点标签功能:

  • yarn.node-labels.enabled: true
  • yarn.node-labels.am.default-node-label-expression: 'CORE'

有关特定属性的信息,请参阅[用于防止由于任务节点 Spot 实例终止而导致作业失败的 Amazon EMR 设置](http://chankei.aka.corp.amazon.com/emr-docs/src/AWSEMapReduceDocs/build/server- root/emr/latest/ManagementGuide/emr-plan-instances-guidelines.html#emr-plan-spot-YARN)。