Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

了解主节点、核心节点和任务节点

通过此节,您可以了解 Amazon EMR 如何使用其中每个节点类型并将其作为集群容量规划的基础。

主节点

主节点管理集群,通常运行分布式应用程序的主要组件。例如,主节点运行 YARN ResourceManager 服务以管理应用程序以及 HDFS NameNode 服务的资源。此外,它还跟踪提交到集群的作业的状态,并监控实例组的运行状况。

要监控集群的进度并直接与应用程序交互,您可以作为 Hadoop 用户通过 SSH 连接到主节点。有关更多信息,请参阅 使用 SSH 连接主节点。通过连接到主节点,您可以直接访问目录和文件,如 Hadoop 日志文件。有关更多信息,请参阅 查看日志文件。您还可以查看应用程序以主节点上运行的网站形式发布的用户界面。有关更多信息,请参阅 查看 Amazon EMR 集群上托管的 Web 界面

注意

使用 Amazon EMR 5.23.0 以及更高版本,您可以启动具有三个主节点的集群,以支持应用程序的高可用性(如 YARN 资源管理器、HDFS 名称节点、Spark、Hive 和 Ganglia)。使用此功能,主节点不再发生潜在的单点故障。如果其中一个主节点出现故障,Amazon EMR 会自动故障转移到备用主节点,并将出现故障的主节点替换为具有相同配置和引导操作的新主节点。有关更多信息,请参阅计划和配置主节点

核心节点

核心节点由主节点 (master node) 进行管理。核心节点运行数据节点守护程序以将数据存储作为 Hadoop 分布式文件系统 (HDFS) 的一部分进行协调。它们还运行任务跟踪守护程序,并对安装的应用程序所需的数据执行其他并行计算任务。例如,核心节点运行 YARN NodeManager 守护程序、Hadoop MapReduce 任务和 Spark 执行器。

但与主节点不同的是,实例组或实例队列中可以有多个核心节点 (因此,有多个 EC2 实例)。仅有一个核心实例组或实例队列。对于实例组,您可以在集群运行时添加和删除 EC2 实例,也可以设置自动扩展。有关使用实例组配置添加和删除 EC2 实例的更多信息,请参阅扩展集群资源。对于实例队列,您可以通过为按需实例与 Spot 实例修改实例队列的目标容量来高效地添加和删除实例。有关目标容量的更多信息,请参阅实例队列选项

警告

从运行的核心节点删除 HDFS 守护程序或终止核心节点将面临数据丢失的风险。配置核心节点以使用 Spot 实例时,请务必小心。有关更多信息,请参阅什么时候应该使用 Spot 实例?

任务节点

任务节点是可选的。您可以使用任务节点来支持对数据执行并行计算任务,例如 Hadoop MapReduce 任务和 Spark 执行程序。任务节点不运行数据节点守护程序,也不在 HDFS 中存储数据。与使用核心节点一样,您可以将任务节点添加到集群,方式是将 EC2 实例添加到现有的统一实例组或修改任务实例队列的目标容量。带统一实例组配置的集群拥有最多共 48 个任务实例组。通过此方式添加统一实例组,使您能够将 EC2 实例类型和定价选项混合在一起,例如按需实例和 Spot 实例。这使您能够灵活且经济有效地响应工作负载要求。在对集群使用实例队列配置时,提供了混合实例类型和购买选项的内置功能,因此仅有一个任务实例队列。

由于 Spot 实例通常用于运行任务节点,Amazon EMR 具有以下默认功能:计划 YARN 任务,从而使正在运行的任务在正在 Spot 实例上运行的任务节点终止时不会失败。Amazon EMR 通过允许应用程序主进程仅在核心节点上运行来达到此目的。应用程序主进程控制正在运行的任务,并需要在任务的整个生命周期内保持活动状态。

Amazon EMR 发布版 5.19.0 和更高版本使用内置的 YARN 节点标签功能来达到此目的。(早期版本使用代码补丁)。默认情况下,将配置 yarn-sitecapacity-scheduler 配置分类中的属性,从而为使 YARN 容量计划程序和公平计划程序能够利用节点标签。Amazon EMR 将自动使用 CORE 标签来标记核心节点,并设置属性以使主应用程序仅在具有 CORE 标签的节点上计划。在 yarn-site 和容量计划程序配置分类中手动修改相关属性或者直接在关联的 XML 文件中修改相关属性可能会破坏此功能或修改此功能。

有关特定属性的信息,请参阅用于防止因任务节点 Spot 实例终止而导致作业失败的 Amazon EMR 设置