2016-04-25 3 views
-1

У меня есть установка Hadoop на моей локальной машине и на моем подчиненном узле. Я хочу использовать его для многоузлового кластера (master + 1 slave в настоящее время). Я также прочитал hadoop multinode tutorial и попытаюсь запустить мой хаос на главном и подчиненном. У меня есть следующая конфигурация моей системы. После того, как я обновил hdfs-site.xml и core-site.xml, я определяю мастера и ведомые устройства на локальной машине. В masters я поставил localhost, в slaves я помещал имя подчиненного узла ... На ведомом я только определяемом в slaves с localhost После этого я выполняюHadoop не распознает подчиненный

[email protected]:/usr/local/hadoop-2.7.2$ sbin/start-dfs.sh 

в локальном хранилище. Hadoop ответ в терминале, кажется, хорошо:

Starting namenodes on [localhost] 
localhost: starting namenode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-hduser-namenode-user.out 
[email protected]: starting datanode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-hduser-datanode-slavename.out 
Starting secondary namenodes [0.0.0.0] 
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-hduser-secondarynamenode-user.out 

Наконец я иду в localhost:50070, и я не видел ни одного подчиненного узла под LiveNodes

enter image description here

Я полагаю, я не есть подключение к моему подчиненному устройству, во всяком случае, я не получил сообщение об ошибке во время запуска кластера. После того, как я делаю остановку ДХ, я действительно получил сообщение:

Stopping namenodes on [localhost] 
localhost: stopping namenode 
[email protected]: no datanode to stop 
Stopping secondary namenodes [0.0.0.0] 
0.0.0.0: stopping secondarynamenode 

Следовательно мой подчиненный узел не подключен к мастеру ....

Я также вижу в моем файле журнала в журналах. Сообщение об ошибке:

java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured. 

Как я могу подключить своего хозяина к моему рабом?

PS Я могу использовать hadoop как ведущий без каких-либо подчиненных устройств, я также могу запустить искровой код с помощью ввода локальной установки в локальном режиме ... Основная проблема - это просто подчиненный.

ответ

0

Ваше имя файла мастера должны содержать адрес SecondaryNameNode так, что NameNode может читать it.You нужно настроить fs.default.name на ядро-site.xml файл конфигурации, например:

<property> 
    <name>fs.default.name</name> 
    <value>hdfs://master:9000</value> 
</property> 

Также вы должны проверить, как «hdfs namenode -format» работает в Hadoop.

0

Прежде всего, вам необходимо установить пароль без пароля SSH между главным и подчиненным узлом.

Затем определите всю необходимую конфигурацию. Проверьте файл ядро-site.xml

<property> 
<name>fs.defaultFS</name> 
<value>hdfs://namenode:8020</value> 
</property> 

Следуйте следующие шаги:

export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop 
echo $HADOOP_CONF_DIR 
hdfs namenode -format 
hdfs getconf -namenodes 
./start-dfs.sh 

Это должно решить вашу проблему.

+0

спасибо, это не поможет. Сообщение ниже для вас содержит полные сообщения об ошибках из обоих файлов журнала (для DataNode и для SecondaryNameNode). Не могли бы вы взглянуть? Спасибо – Guforu

+0

Обратите внимание: [вопрос] (http://stackoverflow.com/questions/21732988/error-org-apache-hadoop-hdfs-server-namenode-secondarynamenode-exception-in-doc). Это может вам помочь. –

+0

Да, я тоже нашел это. благодаря – Guforu

0
  1. Проверьте, что соединение ssh установлено или нет между двумя узлами.
  2. Проверьте, был ли u установлен правильный IP-адрес в файле подчиненных в NN.
0

@Nishu Tayal, благодарю вас за информацию. На самом деле я уже обновил все файлы, как в учебном пособии (и, следовательно, как вы мне рассказываете здесь). Также core-site.xml в порядке. Я также выполняю заказ bin/hdfs namenode -format из папки hadoop и не получил сообщений об ошибках. После того, как я выполнил sbin/start-dfs.sh я получил сообщение об ошибке в файле журнал hadoop-hduser-secondarynamenode-user.log:

java.io.IOException: Inconsistent checkpoint fields. 
LV = -63 namespaceID = 1073223169 cTime = 0 ; clusterId = CID-66f842d0-e32e-4590-b8be-c4f4ff898c4d ; blockpoolId = BP-160655376-127.0.1.1-1461593248732. 
Expecting respectively: -63; 1554470454; 0; CID-6388cf98-8302-48ab-8cd4-44e99ff3d9cb; BP-536690032-127.0.1.1-1461566958202. 
     at org.apache.hadoop.hdfs.server.namenode.CheckpointSignature.validateStorageInfo(CheckpointSignature.java:134) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:531) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doWork(SecondaryNameNode.java:395) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$1.run(SecondaryNameNode.java:361) 
     at org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:415) 
     at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:357) 
     at java.lang.Thread.run(Thread.java:745) 
2016-04-25 16:10:23,821 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint 

И в файле журнал hadoop-hduser-datanode-user.log

2016-04-26 09:10:37,087 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000. Exiting. 
java.io.IOException: All specified directories are failed to load. 
     at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478) 
     at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1358) 
     at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1323) 
     at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:317) 
     at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:223) 
     at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:802) 
     at java.lang.Thread.run(Thread.java:745) 

Вероятно, ошибка из электронного письма secondarynamenode не актуален, от вчерашнего дня. Сегодня утром я не получил сообщений об ошибках в этом файле.