Почему возникает проблема несовместимых имен пространства имен Hadoop? - PullRequest
16 голосов
/ 06 августа 2010

Это довольно хорошо задокументированная ошибка, и ее легко исправить, но кто-нибудь знает, почему Hadoop datanode NamespaceID можно так легко облажаться или как Hadoop назначает NamespaceID при запуске datanodes?

Вот ошибка:

2010-08-06 12:12:06,900 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /Users/jchen/Data/Hadoop/dfs/data: namenode namespaceID = 773619367; datanode namespaceID = 2049079249
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:298)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:216)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1283)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1238)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1246)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1368)

Это, кажется, даже случается для экземпляров с одним узлом.

Ответы [ 5 ]

17 голосов
/ 19 августа 2010

Namenode генерирует новый namespaceID каждый раз, когда вы форматируете HDFS.Я думаю, что это возможно, чтобы отличить текущую версию и предыдущую версию.Вы можете всегда вернуться к предыдущей версии, если что-то не так, что может быть невозможно, если namespaceID не уникален для каждого отформатированного экземпляра.

NamespaceID также соединяет namenode и datanodes.Датододы связывают себя с наменодом через namespaceID

8 голосов
/ 27 июля 2011

эта проблема хорошо объяснена и помогла в следующем подробном руководстве

5 голосов
/ 12 августа 2010

Я тоже это получал, и затем я попытался поместить мою конфигурацию в hdfs-site.xml вместо core-site.xml.

Кажется, что теперь останавливается и запускается без этой ошибки., 2010-08-13]

На самом деле это все еще происходит, и это вызвано форматированием .

Если вы просмотрите файлы VERSION при выполнении форматирования, вы увидите (по крайней мере, я так), что namenode получает новый namespaceID, а узел данных - нет.Быстрое решение состоит в том, чтобы удалить VERSION для datanode перед форматированием.

[TIDE, 2010-08-13]

0 голосов
/ 15 сентября 2016

Я получил следующую ошибку "Несовместимые идентификаторы пространства имен в / home / hadoop / data / dn",

У меня есть четыре узла данных в кластере, после запуска start-dfs.sh использовался только один datanode, поэтому было решено остановить службу в nn и jt и удалить конфигурацию dn из hdfs-site во всех datanodes, удалите файл dn (/ home / hadoop / data / dn) и отформатируйте namenode. Затем снова добавьте свойства datanode в hdfs-site во все datanodes и снова введите формат namenode. попробуйте запустить сервисы, теперь все узлы данных будут исправны

0 голосов
/ 13 апреля 2012

Когда я отформатировал HDFS, я также столкнулся с этой ошибкой. Кроме датоде, не начинающего, трекер работы также не запустится. Для датодела я вручную изменил пространство имен; но для трекера работы нужно создать каталог / mapred / system (как пользователь hdfs) и изменить его владельца на mapred Jobtracker должен начать работать после формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...