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

配置集群硬件和联网

在创建 EMR 集群时,应重点考虑的是,如何配置 Amazon EC2 实例和网络选项。EMR 集群中的 EC2 实例组织成节点类型。有三种节点类型:主节点核心节点任务节点。每个节点执行一组由安装在集群上的分布式应用程序定义的角色。例如,在 Hadoop MapReduce 或 Spark 作业期间,核心节点和任务节点上的组件处理数据、将输出传输到 Amazon S3 或 HDFS 并将状态元数据返回到主节点。对于单节点集群,所有组件都在主节点上运行。

托管每个节点类型的 EC2 实例集合称作实例队列统一实例组。实例队列或统一实例组配置是您在创建集群时所做的选择。它适用于所有节点类型,以后无法更改。

注意

实例队列配置仅在 Amazon EMR 版本 4.8.0 和更高版本中可用 (不包括 5.0.0 和 5.0.3)。

主节点

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

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

核心节点

核心节点由主节点进行管理。核心节点运行数据节点守护程序以将数据存储作为 Hadoop 分布式文件系统 (HDFS) 的一部分进行协调。它们还运行任务跟踪守护程序,并对安装的应用程序所需的数据执行其他并行计算任务。例如,核心节点运行 YARN NodeManager 守护程序、Hadoop MapReduce 任务和 Spark 执行器。与主节点类似,每个集群至少需要一个核心节点。但与主节点不同的是,实例组或实例队列中可以有多个核心节点 (因此,有多个 EC2 实例)。仅有一个核心实例组或实例队列。对于实例组,您可以在集群运行时添加和删除 EC2 实例,也可以设置自动扩展。有关使用实例组配置添加和删除 EC2 实例的更多信息,请参阅扩展集群资源。对于实例队列,您可以通过为按需实例与 Spot 实例修改实例队列的目标容量来高效地添加和删除实例。有关目标容量的更多信息,请参阅实例队列选项

警告

从正在运行的节点移除 HDFS 守护进程有丢失数据的风险。

任务节点

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

实例队列

实例队列配置提供了各种面向 EC2 实例的预配置选项。每个节点类型均有一个实例队列,任务实例队列是可选的。对于每个实例队列,可指定最多 5 个实例类型,这些类型可预配置为按需实例和 Spot 实例。对于核心和任务实例队列,您为按需实例指定一个目标容量,并为 Spot 实例指定另一个目标容量。Amazon EMR 选择 5 个实例类型的任何组合来实现目标容量,并预配置按需实例和 Spot 实例。对于主节点类型,Amazon EMR 从 5 个实例类型中选择一个实例类型,您指定是将该实例类型预配置为按需实例还是 Spot 实例。实例队列还提供了 Spot 实例购买的其他选项,包括定义的持续时间 (也称作 Spot 限制) 和超时 (指定在无法预配置竞价容量时要执行的操作)。有关更多信息,请参阅 配置实例队列

统一实例组

统一实例组提供了简化的设置。每个 Amazon EMR 集群可包含最多 50 个实例组:一个主实例组 (包含一个 EC2 实例)、一个核心实例组 (包含一个或多个 EC2 实例) 和最多 48 个可选任务实例组。每个核心和任务实例组可以包含任意数量的 EC2 实例。您可以通过手动添加和删除 EC2 实例来扩展每个实例组,也可以设置自动扩展。有关配置统一实例组的更多信息,请参阅配置统一实例组。有关添加和删除实例的信息,请参阅扩展集群资源