Кластера не запускается правильно
Я пытаюсь установить 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
и я получил все узлы, работающие правильно.