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

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

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

亚马逊 EMR 定期使用 Apache Hadoop 中的NodeManager 运行状况检查器服务来监控亚马逊集群上亚马逊 EMR 中核心节点的状态。 EC2 如果某个节点未达到最佳运行状态,运行状况检查程序会将该节点报告给 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 启动集群时,您可以启用或禁用运行状况不佳的 AWS CLI节点替换。

默认的运行状况不佳的节点替换设置取决于您启动集群的方式:

  • Amazon EMR 控制台:运行状况不佳的节点替换默认处于启用状态。

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

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

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

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

  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.6.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 命令的更多信息 AWS CLI,请参阅亚马逊 EMR 命令。 AWS CLI

在正在运行的集群中配置运行状况不佳的节点替换

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

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

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

  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