Кластера не запускается правильно

Я пытаюсь установить Hadoop 2.2.0 в псевдо-распределенном режиме. Пока я пытаюсь запустить службы datanode, он показывает следующую ошибку, может ли кто-нибудь сказать, как это решить?

**2**014-03-11 08:48:15,916 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:9000 starting to offer service
2014-03-11 08:48:15,922 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting
2014-03-11 08:48:15,922 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2014-03-11 08:48:16,406 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/in_use.lock acquired by nodename 3627@prassanna-Studio-1558
2014-03-11 08:48:16,426 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
java.io.IOException: Incompatible clusterIDs in /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode: namenode clusterID = CID-fb61aa70-4b15-470e-a1d0-12653e357a10; datanode clusterID = CID-8bf63244-0510-4db6-a949-8f74b50f2be9
    at**** org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:391)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:191)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:219)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:837)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:808)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:280)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:222)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:664)
    at java.lang.Thread.run(Thread.java:662)
2014-03-11 08:48:16,427 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
2014-03-11 08:48:16,532 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582)
2014-03-11 08:48:18,532 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2014-03-11 08:48:18,534 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0
2014-03-11 08:48:18,536 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 

9 ответов


вы можете сделать следующим способом,

копировать в буфер обмена datanode clusterID для вашего примера, CID-8bf63244-0510-4db6-a949-8f74b50f2be9

и выполните следующую команду в каталоге hadoop_home / bin

./hdfs namenode -format -clusterId CID-8bf63244-0510-4db6-a949-8f74b50f2be9

затем этот код отформатировал namenode с идентификаторами кластера datanode.


вы должны сделать следующие :

  • bin/stop-all.sh
  • rm -Rf /home/prassanna/usr/local/hadoop/yarn_data/hdfs/*
  • bin/hadoop namenode -format

у меня была та же проблема, пока я не нашел ответ в этом сайте.


всякий раз, когда вы получаете ниже ошибки, пытаясь запустить DN на подчиненной машине:

java.io.IOException: Incompatible clusterIDs in /home/hadoop/dfs/data: namenode clusterID= ****; datanode clusterID = ****

это потому, что после настройки кластера вы по какой-то причине решили переформатировать твой НН. Ваш DNs на рабах все еще несет ссылку на старый NN.

чтобы решить эту проблему, просто удалите и заново создайте папку данных на этой машине в локальной Linux FS, а именно /home/hadoop/dfs/data.

перезапуск демона DN на этой машине воссоздаст данные / папки содержание и решение проблема.


выполните следующие простые шаги

  • очистить каталог данных hadoop
  • отформатируйте namenode еще раз
  • запустить кластер

после этого ваш кластер запустится нормально, если у вас нет других проблем с конфигурацией


DataNode умирает из-за несовместимых Кластеридов по сравнению с NameNode. Чтобы устранить эту проблему, вам необходимо удалить каталог / tmp/hadoop-[user]/hdfs / data и перезапустить hadoop.

rm -r /tmp/hadoop-[user]/hdfs/data

Я получил аналогичную проблему в моей псевдо-распределенной среде. Сначала я остановил кластер, затем скопировал идентификатор кластера из файла версии NameNode и поместил его в файл версии DataNode, а затем после перезапуска кластера все в порядке.

мой путь данных находится здесь /usr/местные/в Hadoop/hadoop_store/HDFS с/узла DataNode и /usr/местные/Hadoop и/hadoop_store/HDFS с/узел типа NameNode.

к вашему сведению : версия файла в /usr/местные/в Hadoop/hadoop_store/HDFS с/узла DataNode/ток/ ; аналогично для узла NameNode.


здесь datanode немедленно останавливается, потому что clusterID datanode и namenode отличаются. Таким образом, вы должны отформатировать clusterID namenode с clusterID datanode

скопируйте идентификатор кластера datanode для вашего примера, CID-8bf63244-0510-4db6-a949-8f74b50f2be9 и выполните следующую команду из вашего домашнего каталога. Вы можете пойти в свой домашний каталог, просто набрав cd на ваш терминал.

из вашего домашнего dir теперь введите команду:

hdfs namenode -format -clusterId CID-8bf63244-0510-4db6-a949-8f74b50f2be9

удалите каталоги namenode и datanode, как указано в core-site.XML. После этого создайте новые каталоги и перезапустите dfs и yarn.


у меня также была аналогичная проблема. Я удалил папки namenode и datanode со всех узлов и повторил:

$HADOOP_HOME/bin> hdfs namenode -format -force
$HADOOP_HOME/sbin> ./start-dfs.sh
$HADOOP_HOME/sbin> ./start-yarn.sh

чтобы проверить отчет о работоспособности из командной строки (что я бы рекомендовал)

$HADOOP_HOME/bin> hdfs dfsadmin -report

и я получил все узлы, работающие правильно.