如何解决 Amazon EMR 中的节点标签和 YARN ResourceManager 失败?

上次更新时间:2020 年 6 月 15 日

我在 Amazon EMR 集群上启用了节点标签。然后,YARN ResourceManager 失败。如何解决此问题?

简短描述

此问题将影响 Amazon EMR 发行版本 5.19.0-5.21.0。在这些版本中,Amazon EMR 将节点标签文件存储到 HDFS 中:

  • DEFAULT_DIR_NAME = "node-labels"
  • MIRROR_FILENAME = "nodelabel.mirror"
  • EDITLOG_FILENAME = "nodelabel.editlog"

Amazon EMR 将这些文件存储在所有节点上的 yarn-site.xml 中的以下位置:yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'。如果您在调整大小操作期间丢失包含文件数据块的所有节,这些文件会损坏,从而导致问题发生。然后,ResourceManager 将重启,陷入重启循环,然后 CommonNodeLabelsManager 将抛出异常。要查找异常,请在 /var/log/hadoop-yarn/yarn-yarn-resourcemanager-*.log 中搜索“org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager”。

要解决此错误,请删除节点标签文件。然后,重启 ResourceManager 以重新创建文件。

解决方法

1.    检查文件系统运行状况并查找数据块:

hdfs fsck /apps/yarn/nodelabels/ -locations -blocks -files

2.    删除文件:

hdfs dfs -rm -skipTrash /apps/yarn/nodelabels/*

3.    重启 ResourceManager:

sudo stop hadoop-yarn-resourcemanager
sudo start hadoop-yarn-resourcemanager

4.    当 ResourceManager 重启时,它将重新创建节点标签文件。这样可以解决重启循环。但是,您还不能提交 YARN 应用程序。手动添加节点标签条目后您才能提交 YARN 应用程序:

yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"

5.    列出标签,以确认 ResourceManager 已重新创建它们:

yarn cluster --list-node-labels

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?