Намагаються змусити Hadoop працювати; "Відмовлено у зв'язку" в Хадоопі та в Телнеті


0

Я намагався змусити Hadoop працювати в автономному режимі на моєму MBP (ОС 10.9.5), але я постійно отримував помилки "відмовився від з'єднання". Я виявив, що telnet localhost 9000дає ту саму помилку, яку мені сказали спробувати як діагностичну. Те саме відбувається, якщо я спробую 127.0.0.1замість цього localhost, або якщо я спробую ftpзамість цього telnet. Однак ping localhostі ssh localhostдобре працює.

Я деякий час тому заплутався з налаштуванням сервера Apache, і я переживаю, що, можливо, щось зламалося. У якийсь момент я, очевидно, додав рядок:

127.0.0.1    test.local

до /etc/hosts. Я також змінив, httpd.confщоб використовувати папку ~/testяк свою DocumentRoot, а також змінив extra/httpd-vhosts.conf.

Я відновив оригінальні httpd*файли з /etc/apache2/originalпапки, і я відновив /etc/hostsфайл у початковому стані. apachectl configtestдає мені:

httpd: Could not reliably determine the server's fully qualified domain name, using <username>.local for ServerName
Syntax OK

То що мені робити? Як я можу змусити комп’ютер припинити відмову від з'єднання? Я мало знаю про мережу чи сервери.


Для повноти ось початкова помилка telnet:

$ ssh localhost
$ telnet localhost 9000
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host

і мій /etc/hostsфайл:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

і помилка Hadoop, яка використовує ту саму мову "відмовлено від з'єднання", що і telnet :

java.net.ConnectException: Call From <username>.local/<ip> to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

Перейшовши за посиланням у помилці ( http://wiki.apache.org/hadoop/ConnectionRefused ), я прочитав таке:

Якщо програма або кластер не працюють, і це повідомлення з’являється в журналі, то це більш серйозно.

  • Перевірте правильність імені хоста, яким користувач користується
  • Перевірте правильність IP-адреси, з якою клієнт намагається поговорити, щоб ім'я хоста було правильним.
  • Переконайтеся, що адреса призначення у винятку не є 0,0.0.0 - це означає, що ви фактично не налаштували клієнта з реальною адресою для цієї послуги, а натомість він підбирає властивість на сервері, яка вимагає її слухати кожен порт для з'єднань.
  • Перевірте, чи немає запису для вашого імені хоста, відображеного на 127.0.0.1 або 127.0.1.1 в / etc / hosts (Ubuntu для цього відомий)
  • Перевірте порт, на якому клієнт намагається поговорити, використовуючи сірники, на яких сервер пропонує послугу.
  • На сервері спробуйте a, telnet localhost <port>щоб побачити, чи порт там відкритий.
  • На клієнті спробуйте telnet <server> <port>перевірити, чи доступ до порту доступний віддалено.

Жодна з цих проблем не є Hadoop, це проблеми з конфігурацією хоста, мережі та брандмауера. Оскільки це ваш кластер, тільки ви можете дізнатися та відстежити проблему.

і справді я не вдається на другому етапі, який, мабуть, повинен працювати; звідси це питання.


Чи краще це питання підходить для StackOverflow? Я досі цього не з'ясував.
shadowtalker

Відповіді:


0

Це нормально, conection refusedякщо ви ftpабо telnetдо localhost, принаймні, якщо ви не працювали та не працювали на такому сервері, і за замовчуванням ви цього не робите.

За замовчуванням /etc/hostsмає виглядати 127.0.0.1 localhost. Для того, щоб використовувати Apache і уникнути помилок ви згадали, ви повинні додати ServerName localhostдо httpd.conf. Перезапустіть апаш і повинен справно працювати.

Не знаю, чи це також вирішить помилку Hadoop. Не можу вам у цьому допомогти. Просто спробуйте і дайте мені знати.


Чи варто використовувати Apache? Моє враження від підручника Hadoop ( hadoop.apache.org/docs/current/hadoop-project-dist/… ) полягає в тому, що воно повинно працювати з поля без будь-яких налаштувань сервера.
shadowtalker

0

Виявляється, у мене було відключено "Віддалений вхід" у налаштуваннях системи!

Рішення було:

Налаштування системи -> Спільний доступ -> Установіть прапорець "Віддалений вхід"

Хоча я також переформатувався на жорсткому диску та перейшов на Yosemite, тому, мабуть, допомогла свіжа версія Apache.


0

Іноді цей виняток кидається, коли ви запускаєте hadoop, не запускаючи Namodeode, тому перед запуском sbin/start-dfs.shбажано запустити:

bin/hdfs namenode

Удачі.


0

Я також отримую таку ж помилку під час запуску hadoop dfs -ls

<HOSTNAME> to 0.0.0.0:9000 failed on connection
exception: java.net.ConnectException: Connection refused; 
For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

Для мене це була проблема з видачею дозволу; запустіть hadoop namenode -formatі перевірте, чи потрапляєте ви нижче виключення:

java.io.IOException: Cannot create directory /usr/local/hadoop/dfs/name/current
java.io.IOException: Cannot create directory /usr/local/hadoop/dfs/name/current

Якщо ви отримуєте вище винятку; дати дозвіл на написання;

  • Зупиніть hadoop
  • sudo chmod 777 /usr/local/hadoop/dfs/name/
  • Початок хадопу
  • hadoop namenode -format перевірити

chmod 777може бути трохи екстремальним, ви спробували 775?
nohillside
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.