如何解决 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