Удаленный доступ к namenode не разрешен, несмотря на то, что службы уже запущены.

Я успешно установил и запустил Hadoop на одна машина с IP-адресом 192.168.1.109 (на самом деле это экземпляр Ubuntu, работающий на virt коробку). При вводе jps отображается

2473 DataNode

2765 TaskTracker

3373 Jps

2361 NameNode

2588 SecondaryNameNode

2655 JobTracker

Это должно означать, что hadoop запущен и работает. Выполнение таких команд, как ./hadoop fs -ls, нормально и дает ожидаемый результат.

Но если я попытаюсь подключить его из окна с IP-адресом 192.168.1.80, написав API HDFS кода Java для его подключения следующим образом:

Configuration conf = new Configuration ();

FileSystem hdfs = null;

Path filenamePath = new Path (FILE_NAME);

hdfs = FileSystem.get (conf); <- проблема возникла в этой строке

, когда я запускаю код, ошибка отображается следующим образом:

11/12/07 20:37:24 INFO ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовали 0 раз.

11/12/07 20:37:26 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 1 раз.

11/12/07 20:37:28 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 2 раза.

11/12/07 20:37:30 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 3 раза.

11/12/07 20:37:32 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 4 раза.

11/12/07 20:37:33 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 5 раз.

11/12/07 20:37:35 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 6 раз.

11/12/07 20:37:37 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 7 раз.

11/12/07 20:37:39 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 8 раз.

11/12/07 20:37:41 ИНФОРМАЦИЯ ipc.Client: Повторная попытка подключения к серверу: /192.168.1.109:9000. Уже пробовал 9 раз.

java.net.ConnectException: вызов /192.168.1.109:9000 завершился неудачно при исключении соединения: java.net.ConnectException: соединение отклонено: дополнительная информация отсутствует

Чтобы убедиться, что сокет уже открыт и ожидает входящих соединений на сервере hadoop, я netstat в поле ubuntu результат будет следующим:

tcp 0 0 localhost: 51201 : LISTEN 2765 / java
tcp 0 0 *: 50020 : LISTEN 2473 / java
tcp 0 0 localhost: 9000 : СЛУШАТЬ 2361 / java
tcp 0 0 localhost: 9001 : СЛУШАТЬ 2655 / java
tcp 0 0 *: mysql : СЛУШАТЬ -
tcp 0 0 *: 50090 : СЛУШАТЬ 2588 / java
tcp 0 0 *: 11211 : СЛУШАТЬ -
tcp 0 0 *: 40843 : СЛУШАТЬ 2473 / java
tcp 0 0 *: 58699 : СЛУШАТЬ -
tcp 0 0 *: 50060 : СЛУШАТЬ 2765 / java
tcp 0 0 *: 50030 : СЛУШАТЬ 2655 / java
tcp 0 0 *: 53966 : СЛУШАТЬ 2655 / java
tcp 0 0 *: www : СЛУШАТЬ -
tcp 0 0 *: epmd : СЛУШАТЬ -
tcp 0 0 *: 55826 : СЛУШАТЬ 2588 / java
tcp 0 0 *: ftp : СЛУШАТЬ -
tcp 0 0 *: 50070 : СЛУШАТЬ 2361 / java
tcp 0 0 *: 5 2822 : СЛУШАТЬ 2361 / java
tcp 0 0 *: ssh : СЛУШАТЬ -
tcp 0 0 *: 55672 : СЛУШАТЬ -
tcp 0 0 *: 50010 : СЛУШАТЬ 2473 / java
tcp 0 0 *: 50075 : СЛУШАТЬ 2473 / java

Я заметил, что если столбец локального адреса что-то вроде localhost: 9000 (начинается с localhost: not * :) В некоторых случаях он не сможет подключиться с удаленного хоста или даже в своем собственном ящике.Я пробовал telnet localhost 9000, он работает, я имею в виду, что он может подключиться к порту, но если я использую telnet 192.168.1.109 9000 Ошибка отображается как

$ telnet 192.168.1.109 9000. Пробуем 192.168.1.109 ... telnet: Невозможно подключиться к удаленному хосту: В соединении отказано

Я потратил почти неделю на выяснение проблемы. Я действительно устал и надеюсь, что кто-нибудь сможет мне помочь.

Примечание:Я не уверен, что namenode по умолчанию отказывается от удаленного подключения. Мне нужно изменить некоторые настройки, чтобы разрешить удаленные подключения?

5
задан woraphol.j 1 January 2012 в 15:10
поделиться