Я настроил Hadoop (2.6.0) с режимом нескольких машин: 1 namenode + 3 datanode. Когда я использовал команду: start-all.sh, они (namenode, datanode, менеджер ресурсов, менеджер узлов) работали нормально. Я проверил это с помощью команды jps, и результаты для каждого узла были ниже:
ИмяУзел:
7300 диспетчер ресурсов
6942 ИмяУзел
7154 ВторичноеИмяУзел
Узлы данных:
3840 узел данных
3924 Менеджер узлов
Я также загрузил образец текстового файла на HDFS по адресу: /user/hadoop/data/sample.txt. Абсолютно никакой ошибки в тот момент.
Но когда я попытался запустить mapreduce с jar-файлом примера Hadoop:
jar hadoop hadoop-mapreduce-examples-2.6.0.jar количество слов /user/hadoop/data/sample.txt /user/hadoop/output
У меня есть эта ошибка:
15/04/08 03:31:26 INFO mapreduce.Job: Job job_1428478232474_0001 running in uber mode : false
15/04/08 03:31:26 INFO mapreduce.Job: map 0% reduce 0%
15/04/08 03:31:26 INFO mapreduce.Job: Job job_1428478232474_0001 failed with state FAILED due to: Application application_1428478232474_0001 failed 2 times due to Error launching appattempt_1428478232474_0001_000002. Got exception: java.net.ConnectException: Call From hadoop/127.0.0.1 to localhost:53245 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731)
at org.apache.hadoop.ipc.Client.call(Client.java:1472)
at org.apache.hadoop.ipc.Client.call(Client.java:1399)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
at com.sun.proxy.$Proxy31.startContainers(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96)
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119)
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:254)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:607)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:705)
at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1521)
at org.apache.hadoop.ipc.Client.call(Client.java:1438)
... 9 more Failing the application.
15/04/08 03:31:26 INFO mapreduce.Job: Counters: 0
Что касается конфигурации, убедитесь, что namenode может подключаться по ssh к узлам данных и наоборот без запроса пароля. Я также отключил IP6 и изменил файл /etc/hosts:
127.0.0.1 локальный хауп
192.168.56.102 хауп-нн
192.168.56.103 хауп-dn1
192.168.56.104 хауп-дн2
192.168.56.105 хауп-dn3
Я не знаю, почему mapreduced не может работать, хотя namenode и datanodes работали нормально. Я почти застрял здесь, вы можете помочь мне найти причину ??
Спасибо
Изменить: здесь конфигурация в hdfs-site.xml (namenode):
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/hadoop_stores/hdfs/namenode</value>
<description>NameNode directory for namespace and transaction logs storage.</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop-nn:50070</value>
<description>Your NameNode hostname for http access.</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-nn:50090</value>
<description>Your Secondary NameNode hostname for http access.</description>
</property>
В узлах данных:
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/hadoop_stores/hdfs/data/datanode</value>
<description>DataNode directory</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop-nn:50070</value>
<description>Your NameNode hostname for http access.</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-nn:50090</value>
<description>Your Secondary NameNode hostname for http access.</description>
Вот результат с командой: hadoop fs -ls /user/hadoop/data
hadoop@hadoop:~/DATA$ hadoop fs -ls /user/hadoop/data 15/04/09 00:23:27 Найдено 2 элемента
-rw-r--r-- 3 супергруппа hadoop 29 09.04.2015 00:22 >/user/hadoop/data/sample.txt
-rw-r--r-- 3 супергруппа hadoop 27 09.04.2015 00:22 >/user/hadoop/data/sample1.txt
hadoop fs -ls /user/hadoop/output
ls: `/user/hadoop/output': Нет такого файла или каталога
namenode
? Также есть ли строка с127.0.1.1
в вашем файле/etc/hosts
? - person Rajesh N   schedule 08.04.2015127.0.1.1
не нужен, так как в основном вызывает проблемы с подключением. Можешь опубликовать свойhdfs-site.xml
? - person Rajesh N   schedule 08.04.2015telnet hadoop-nn
в namenode и datanodes? Можете ли вы сделатьtelnet 127.0.0.1
со своего namenode? - person Rajesh N   schedule 09.04.2015telnet 127.0.0.1
должно работать. Я приду к этому позже. Опубликовать результаты для:hadoop fs -ls /user/hadoop/data
иhadoop fs -ls /user/hadoop/output
- person Rajesh N   schedule 09.04.2015