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-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
관련 정보
노드 유형 이해: 마스터, 코어 및 태스크 노드