Когда я запускаю сценарий start-all.sh со своего главного узла, некоторые из моих узлов данных не запускаются; файл журнала сообщает об исключении Java IOException: несовместимые идентификаторы пространства имен в / tmp / $ MY_USER_NAME.
Когда NameNode форматируется, создается идентификатор пространства имен, который по существу идентифицирует этот конкретный экземпляр распределенной файловой системы. Когда DataNodes впервые подключаются к NameNode, они сохраняют этот идентификатор пространства имен вместе с блоками данных, потому что блоки должны принадлежать определенной файловой системе.
Если DataNode позже подключается к NameNode и идентификатор пространства имен, который объявляет NameNode, не совпадает с идентификатором пространства имен, хранящимся в DataNode, он откажется работать с ошибкой «несовместимый идентификатор пространства имен». Это означает, что DataNode подключился к другому NameNode, и блоки, которые он хранит, не принадлежат этой распределенной файловой системе.
Обычно это означает, что вы каким-то образом потеряли свои метаданные NameNode. Если у вас несколько установок HDFS, ваш DataNode может подключаться к неправильному NameNode. Если у вас только одна установка, то ваш NameNode либо работает с другим каталогом метаданных, либо вы каким-то образом потеряли метаданные и начали с недавно отформатированной файловой системой (что должно произойти только при запуске hadoop namenode -format
). Попробуйте найти правильные метаданные NameNode или восстановить их из резервной копии.
Каждый раз, когда NameNode переформатирует, он генерирует новый идентификатор пространства имен, и некоторые из ваших компьютеров не получают памятку. Самый простой способ решить эту проблему - переформатировать распределенную файловую систему; получить любые файлы из HDFS, затем запустить rm -Rf /tmp/hadoop-$MY_USER_NAME
на каждом сервере (путь к каталогу может отличаться в зависимости от вашей конфигурации). Тогда беги hadoop namenode -format
с вашего главного сервера. После этого, bin/start-all.sh
должен сделать свое дело.