替换运行状况不佳的节点 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

替换运行状况不佳的节点

亚马逊 EMR 定期使用 Apache Hadoop 中的NodeManager 运行状况检查器服务来监控 Amazon EC2 集群上亚马逊 EMR 中核心节点的状态。如果节点功能不佳,运行状况检查器会向 Amazon EMR 控制器报告该节点。Amazon EMR 控制器会将该节点添加到拒绝列表中,从而在节点状态改善之前阻止该节点接收新的 YARN 应用程序。节点可能变得不健康的一个常见原因是磁盘利用率过高。有关识别运行状况不佳的节点和恢复的更多信息,请参阅资源错误

您可以选择 Amazon EMR 是终止运行状况不佳的节点还是将其保留在集群中。如果您关闭不健康的节点替换,则不健康的节点将保留在拒绝列表中,并继续计入集群容量。您仍然可以连接到 Amazon EC2 核心实例进行配置和恢复,因此您可以调整集群大小以增加容量。请注意,即使开启了终止保护,Amazon EMR 也会替换运行状况不佳的节点。

如果开启了不健康的节点替换,Amazon EMR 将终止运行状况不佳的核心节点,并根据实例组中的实例数量或实例队列的目标容量配置新实例。如果多个或所有核心节点运行状况不佳的时间超过 45 分钟,Amazon EMR 将优雅地替换这些节点。

重要

为了避免在 Amazon EMR 优雅地替换运行状况不佳的核心实例时永久丢失 HDFS 数据,我们建议您始终备份数据。

Amazon EMR CloudWatch 会针对不健康的节点替换发布亚马逊事件,因此您可以跟踪运行状况不佳的核心实例的情况。有关更多信息,请参阅运行状况不佳的节点替换事件

默认节点替换和终止保护设置

不健康的节点替换适用于所有 Amazon EMR 版本,但默认设置取决于您选择的版本标签。您可以通过在创建新集群时配置不健康的节点替换或随时进入集群配置来更改这些设置中的任何一个。

如果您正在创建运行 Amazon EMR 7.0 或更低版本的单节点集群或高可用性集群,则运行状况不佳的节点替换的默认设置取决于终止保护:

  • 启用终止保护会禁用不健康的节点替换。

  • 禁用终止保护会导致更换不健康的节点。

启动集群时配置不健康的节点替换

在使用控制台、或 API 启动集群时,您可以启用或禁用运行状况不佳的 Amazon CLI节点替换。

默认的不健康节点替换设置取决于您启动集群的方式:

  • Amazon EMR 控制台-默认情况下启用不健康的节点替换。

  • Amazon CLI aws emr create-cluster— 除非您指定--no-unhealthy-node-replacement,否则默认情况下会启用不健康的节点替换。

  • Amazon EMR RunJobFlow API 命令 — 除非您将UnhealthyNodeReplacement布尔值设置为或,否则默认情况下会启用不健康的节点替换。True False

Console
在使用控制台创建集群时打开或关闭运行状况不佳的节点替换
  1. 登录并打开亚马逊 EMR 控制台,网址为 https://console.aws.amazon.com/emr。 Amazon Web Services Management Console

  2. 在左侧导航窗格中的 EMR on EC2 下,选择 Clusters(集群),然后选择 Create cluster(创建集群)。

  3. 对于 EMR 发行版本,请选择您想要的 Amazon EMR 发行标签。

  4. 在 “集群终止和节点替换” 下,确保已预先选择不健康的节点替换(推荐),或者清除该选项将其关闭。

  5. 选择适用于集群的任何其他选项。

  6. 要启动集群,选择 Create cluster(创建集群)。

Amazon CLI
使用创建集群时打开或关闭运行状况不佳的节点替换 Amazon CLI
  • 使用 Amazon CLI,您可以使用带--unhealthy-node-replacement 参数的create-cluster命令启动启用了不健康节点替换功能的集群。默认情况下,不健康的节点替换处于开启状态。

    以下示例创建了一个启用了不健康节点替换功能的集群:

    注意

    为了便于读取,包含 Linux 行继续符 (\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号 (^)。

    aws emr create-cluster --name "SampleCluster" --release-label emr-7.1.0 \ --applications Name=Hadoop Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --unhealthy-node-replacement

    有关在中使用 Amazon EMR 命令的更多信息 Amazon CLI,请参阅亚马逊 EMR 命令。 Amazon CLI

在正在运行的集群中配置不健康的节点替换

您可以使用控制台、或 API 为正在运行的集群开启或关闭不健康的 Amazon CLI节点替换。

Console
使用控制台为正在运行的集群开启或关闭不健康的节点替换
  1. 登录并打开亚马逊 EMR 控制台,网址为 https://console.aws.amazon.com/emr。 Amazon Web Services Management Console

  2. 在左侧导航窗格中的 EMR on EC2 下,选择 Clusters(集群),然后选择要更新的集群。

  3. 在集群详细信息页面的属性选项卡上,找到集群终止和节点更换,然后选择编辑

  4. 选中或清除 “不健康的节点替换” 复选框以打开或关闭该功能。然后选择 Save changes(保存更改)进行确认。

Amazon CLI
要为正在运行的集群开启或关闭不健康的节点替换,请使用 Amazon CLI
  • 要使用在正在运行的集群上启用不健康的节点替换 Amazon CLI,请使用带--unhealthy-node-replacement参数的modify-cluster-attributes命令。要禁用终止保护,请使用 --no-unhealthy-node-replacement 参数。

    以下示例在 ID 为 j- 3kvtxxxxxx7ug 的集群上启用了不健康的节点替换:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --unhealthy-node-replacement

    以下示例关闭了同一集群上运行状况不佳的节点替换:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-unhealthy-node-replacement