用 Amazon 替换运行状况不佳的节点 EMR - Amazon EMR

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

用 Amazon 替换运行状况不佳的节点 EMR

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

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

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

重要

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

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

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

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

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

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

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

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

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

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

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

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

  • Amazon EMR RunJobFlow API命令 — 除非您将UnhealthyNodeReplacement布尔值设置为TrueFalse,否则默认情况下会启用运行状况不佳的节点替换。

Console
在使用控制台创建集群时打开或关闭运行状况不佳的节点替换
  1. 登录 AWS Management Console,然后通过 https://console.aws.amazon.com/em r 打开亚马逊EMR控制台。

  2. EC2在左侧导航窗格的开下EMR,选择集群,然后选择创建集群

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

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

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

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

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

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

    注意

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

    aws emr create-cluster --name "SampleCluster" --release-label emr-7.3.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

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

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

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

Console
使用控制台为正在运行的集群开启或关闭不健康的节点替换
  1. 登录 AWS Management Console,然后通过 https://console.aws.amazon.com/em r 打开亚马逊EMR控制台。

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

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

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

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

    以下示例在 ID 为 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