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

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

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

亚马逊 EMR 定期使用 Apache Hadoop 中的NodeManager 运行状况检查器服务来监控亚马逊集群上亚马逊 EMR 中核心节点的状态。 EC2 如果节点运行不佳,则该节点将被标记为运行状况不佳,运行状况检查器会向 Amazon EMR 控制器报告该节点。Amazon EMR 控制器会将该节点添加到拒绝列表中,从而在节点状态改善之前阻止该节点接收新的 YARN 申请。

注意

节点运行状况不佳的一个常见原因是其磁盘空间不足。有关核心节点何时几乎用完磁盘空间的更多信息,以下 re: Post 知识中心文章很有帮助:为什么我的 Amazon EMR 集群中的核心节点磁盘空间不足

注意

Hadoop 确实提供了运行自定义节点运行状况检查的功能。Apache Hadoop 文档对此进行了更详细的解释,网址为。NodeManager

您可以选择 Amazon EMR 是应终止运行状况不佳的节点,还是将其保留在集群中。如果您关闭运行状况不佳的节点替换,它们将保留在拒绝列表中,并继续计入集群容量。您仍然可以连接到 Amazon EC2 核心实例进行配置和恢复,因此,如果您想增加容量,可以调整集群的大小。有关节点更换和终止工作原理的更多信息,请参阅使用终止保护

如果开启了不健康的节点替换,Amazon EMR 会终止运行状况不佳的核心节点,并根据实例组中的实例数量或实例队列的目标容量配置新实例。如果任何节点的运行状况不佳超过 45 分钟,Amazon EMR 将优雅地替换这些节点。如果节点的正常停用未在一小时内完成,则该节点将被强制终止,除非终止它会使集群低于复制因子或 HDFS 容量限制。

重要

请注意,节点优雅停用或终止之前所花费的时间可能会发生变化。

尽管更换不健康的节点可以显著降低数据丢失的可能性,但它并不能完全消除风险。在正常更换运行状况不佳的核心实例期间,HDFS 数据可能会永久丢失。我们建议您始终备份数据。

有关识别运行状况不佳的节点和恢复的更多信息,请参阅资源错误。此外,要了解维护集群运行状况的更多最佳实践,请参阅以下文档,了解资源错误 Amazon EMR 集群在 NO_SLAVE_LEFT 和核心节点 FAILED_BY_MASTER 时终止。

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.9.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