Habilitei rótulos de nós em um cluster do Amazon EMR. Em seguida, o YARN ResourceManager falhou.
Descrição breve
Esse problema afeta as versões de lançamento do Amazon EMR 5.19.0 - 5.21.0. Nessas versões, o Amazon EMR armazena arquivos de rótulos de nós no HDFS:
- DEFAULT_DIR_NAME = "node-labels"
- MIRROR_FILENAME = "nodelabel.mirror"
- EDITLOG_FILENAME = "nodelabel.editlog"
O Amazon EMR armazena esses arquivos no seguinte local em yarn-site.xml em todos os nós: yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'. O problema acontece no momento em que esses arquivos são corrompidos quando você perde todos os nós que contêm os blocos do arquivo durante uma operação de redimensionamento. O ResourceManager então reinicia, fica preso em um loop de reinicialização e, em seguida, o CommonNodeLabelsManager lança uma exceção.
Para encontrar a exceção, procure "org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager" em /var/log/hadoop-yarn/yarn-yarn-resourcemanager-*.log.
Para resolver esse erro, exclua os arquivos do rótulo do nó. Em seguida, reinicie o ResourceManager para recriar os arquivos.
Resolução
1. Verifique a integridade do sistema de arquivos e localize os blocos:
hdfs fsck /apps/yarn/nodelabels/ -locations -blocks -files
2. Remova os arquivos:
hdfs dfs -rm -skipTrash /apps/yarn/nodelabels/*
3. Reinicie o ResourceManager:
sudo stop hadoop-yarn-resourcemanager
sudo start hadoop-yarn-resourcemanager
4. Quando o ResourceManager é reiniciado, ele recria os arquivos de rótulo do nó.. Isso resolve o loop de reinicialização. No entanto, você ainda não pode enviar inscrições ao YARN. Antes de enviar as aplicações do YARN, adicione manualmente entradas de rótulos de nós:
yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"
5. Relacione os rótulos para confirmar que o ResourceManager os recriou:
yarn cluster --list-node-labels
Informações relacionadas
Entender os tipos de nós: principal, central e de tarefa