Произошла ошибка при подаче заявки на сеанс Flink в Hadoop.
Содержимое ошибки
File /user/.flink/application_1723473994699_0002b/flink-table-api-java-uber-1.17.0.jar could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.
Я увидел, что узел данных не найден, поэтому проверил процесс и обнаружил, что узел данных действительно не найден. При использовании start-dfs.sh узел данных не запускался.
Вы можете проверить причину проблемы, выполнив следующие действия.
hdfs-site.xml
и core-site.xml
Файл конфигурации правильный. особенно с DataNode Связанные из Конфигурация, как dfs.datanode.data.dir
(DataNode Сохраните каталог данных).dfs.datanode.data.dir
Конфигурация) должен существовать и быть доступен для записи. Если каталог не существует или не имеет разрешения на запись, DataNode не запустится.jps
Представление команд NameNode Запускается ли процесс.stop-dfs.sh
и start-dfs.sh
)。/var/log/syslog/var/log/messages
или подобное), чтобы найти возможные Hadoop Ошибки или предупреждения, связанные с процессом.Я проверил, совпадают ли кластерные идентификаторы namenode и datanode, и обнаружил, что они действительно различаются.
namenode
clusterID=CID-c31bfe11-654c-4b08-a555-22de9305b6dd
datanode
clusterID=CID-b4ac40db-530a-4b2d-8278-0bfe8b91de28
clusterID
будет другим?clusterID
Несоответствия обычно возникают в следующих ситуациях.:
hdfs namenode -format
Заказ),И DataNode не сбрасывается и не форматируется соответствующим образом.,ТакNameNodeполучит новыйизclusterID
,иDataNodeвсе еще храню староеизclusterID
。
clusterID
нет совпадений),Тактакже会ПоявлятьсяclusterID
непоследовательныйиз Состояние。
clusterID
непоследовательный。
clusterID
непоследовательныйиз后果当NameNodeиDataNodeизclusterID
непоследовательныйчас,DataNode не сможет успешно взаимодействовать с NameNode или зарегистрироваться как часть кластеризации. Это имеет следующие последствия:
clusterID
нет совпаденийинеудача,Это может привести к нестабильному состоянию или частым перезапускам DataNode.clusterID
непоследовательныйизвопросclusterID
соответствовать),NameNode можно восстановить из этой резервной копии.clusterID
:в некоторых Состояние Вниз,Если вы уверены, что DataNode принадлежит текущему кластеру,но仅потому чтокакая-то причинаclusterID
нет совпадений,Можно попробовать изменить вручнуюDataNodeизclusterID
сNameNodeизclusterID
Взаимносоответствовать。Рани,Этот метод требует осторожности,И может включать прямую модификацию внутренней структуры HDFS.clusterID
непоследовательныйиз Конфигурация Ошибка или эксплуатационная ошибка。
Суммируя,clusterID
непоследовательныйдаHDFSкластеродин серьезныйизвопрос,Требуется тщательная диагностика и лечение. в большинстве случаев,Лучше всего избегать переформатирования NameNode.,Если только вам действительно не понадобится перезагружать весь кластер.
большинствоизрешение还дабольшинство手动修改一ВнизDataNodeизclusterID,Измените его, чтобы он соответствовал NameNode.
Сначала найдите файл VERSION,NameNode и DataNode имеют свои собственные файлы VERSON.,хранится внутриclusterID,Но версия Hadoop отличается,Пути хранения этих двух файлов также различны.
Рекомендуется просто использовать функцию поиска напрямую, это удобно и быстро.
Сначала войдите в каталог Hadoop и используйте команду find для поиска ВЕРСИИ в каталоге Hadoop и его подкаталогах.
find -name VERSION
Я нашел здесь три
./data/dfs/data/current/VERSION
./data/dfs/data/current/BP-1238583945-192.168.10.102-1709627934929/current/VERSION
./data/dfs/name/current/VERSION
Первый, который вы видите, находится в каталоге данных, который представляет собой файл VERSION узла данных.
Второй должен быть файлом сопоставления, поэтому пока игнорируйте его.
Третий можно увидеть в каталоге имен, это файл ВЕРСИИ узла имени.
Первое закрытие hdfs
stop-dfs.sh
ЗатемисследоватьnamenodeиdatanodeДвое из нихVERSIONдокументсерединаизСогласован ли идентификатор кластера?,Если оно противоречиво, то,Вручную измените идентификатор кластера в DataNode.,Просто измените его так, чтобы он был таким же, как namenode.
Затем запустите hdfs
start-dfs.sh
DataNode запустился нормально