跳至内容

如何解决 Amazon EMR 中的“Exit status: -100.Diagnostics: Container released on a lost node”错误?

2 分钟阅读
0

我的 Amazon EMR 作业失败,并显示“Container released on a lost node”错误。

简短描述

当 Amazon EMR 因磁盘空间利用率过高而终止核心节点或任务节点时,您可能会收到以下错误:

“ExecutorLostFailure (executor 12 exited caused by one of the running tasks) Reason: Container marked as failed: container_1572839353552_0008_01_000002 on host: ip-##-###-##-## Exit status: -100.Diagnostics: Container released on a lost node”

当节点因 CPU 利用率长期过高或可用内存不足而变得无响应时,您也可能会收到上述错误。

以下解决方法提供了相关步骤,以解决您在磁盘空间耗尽且 MR unhealthy nodes(MR 不正常节点)指标显示存在运行状况不佳的节点时收到的错误。

解决方法

当核心节点或任务节点磁盘(例如 /mnt/mnt1)上的磁盘使用率超过 90% 时,该磁盘将处于运行不佳状态。如果节点的正常磁盘不足 25%,则 YARN ResourceManager 会稳妥地停用该节点。要解决此问题,请向 EMR 集群添加更多 Amazon Elastic Block Store (Amazon EBS) 容量。

确定根本原因

要确定错误的原因,请检查 EMR 集群的 Amazon CloudWatch 指标 MR unhealthy nodes(MR 不正常节点)和 MR lost nodes(MR 丢失节点)。

如果 MR unhealthy nodes(MR 不正常节点)指标显示存在运行状况不佳的节点,则表明问题是由于磁盘空间不足导致的。

如果 MR lost nodes(MR 丢失节点)指标显示存在丢失节点,则表明硬件故障导致节点丢失。或者,由于 CPU 或内存使用率过高,Amazon EMR 无法访问该节点。

为新集群添加更多 Amazon EBS 容量

要在启动 Amazon EMR 集群时添加更多 Amazon EBS 容量,请选择更大的 Amazon Elastic Compute Cloud (Amazon EC2) 实例类型。有关详细信息,请参阅实例的默认 EBS 存储。您也可以在创建集群时修改卷大小或添加更多卷。

为新集群或正在运行的集群添加更多核心节点或任务节点

启动新集群时,请选择更多数量的核心节点或任务节点。或者,向正在运行的集群添加更多核心节点或任务节点

为正在运行的集群添加更多 Amazon EBS 卷

如果更大的 Amazon EBS 卷不能解决问题,请向正在运行的集群附加更多 Amazon EBS 卷。

完成以下步骤:

  1. 向核心节点和任务节点附加更多 Amazon EBS 卷

  2. 格式化并挂载附加的卷。确保使用正确的磁盘号。例如,使用 /mnt1/mnt2,而不是 /data

  3. 使用 SSH 连接到节点

  4. /etc/hadoop/conf/yarn-site.xmlyarn.nodemanager.local-dirs 属性中添加路径 /mnt1/yarn
    示例:

    <property>    <name>yarn.nodemanager.local-dirs</name>
        <value>/mnt/yarn,/mnt1/yarn</value>
    </property>
  5. 重启 NodeManager 服务:

    sudo stop hadoop-yarn-nodemanager
    sudo start hadoop-yarn-nodemanager
  6. 启用终止保护

如果仍然存在磁盘空间问题,请执行以下操作:

  • 删除不必要的文件。
  • 将磁盘利用率阈值从 90% 提高到 99%。为此,请修改所有节点上 yarn-default.xml 中的 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 属性。然后,重启 hadoop-yarn-nodemanager 服务。

相关信息

Amazon EMR 集群终止,状态为 NO_SLAVE_LEFT,核心节点状态为 FAILED_BY_MASTER

为什么我的 Amazon EMR 集群中的核心节点会耗尽磁盘空间?

AWS 官方已更新 4 个月前