我在 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
相关信息
了解节点类型:主节点、核心和任务节点