Hadoop - java.net.ConnectException: в соединении отказано

Я хочу подключиться к hdfs (на localhost), и у меня есть ошибка:

Вызов от despubuntu-ThinkPad-E420 / 127.0.1.1 на localhost: 54310 не удалось при соединении, исключение: java.net.ConnectException: соединение отклонено; Для получения дополнительной информации см .: http://wiki.apache.org/hadoop/ConnectionRefused.

Я выполняю все шаги, описанные в других сообщениях, но не решаю свою проблему. Я использую hadoop 2.7, и это конфигурации:

core-site.xml

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/despubuntu/hadoop/name/data</value>
  </property>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:54310</value>
  </property>
</configuration>

hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

Я набираю / usr / local / hadoop / bin / hdfs namenode -format и /usr/local/hadoop/sbin/start-all.sh

Но когда я набираю "jps", результат будет:

10650 Jps
4162 Main
5255 NailgunRunner
20831 Launcher

Мне нужна помощь...


person Alex    schedule 27.04.2015    source источник
comment
Попробуйте изменить 127.0.1.1 на 127.0.0.1 в /etc/hosts файле. Перезапустите процесс hadoop.   -  person Rajesh N    schedule 28.04.2015
comment
@RajeshN, не могли бы вы объяснить еще немного, пожалуйста?   -  person dallonsi    schedule 14.05.2019


Ответы (5)


Убедитесь, что DFS, для которого установлен порт 9000 в core-site.xml, действительно запущен. Вы можете проверить с помощью команды jps. Вы можете начать с sbin/start-dfs.sh

person nikk    schedule 21.07.2016

Я предполагаю, что вы неправильно настроили кластер hadoop, пожалуйста, выполните следующие действия:

Шаг 1: начните с настройки .bashrc:

vi $HOME/.bashrc

поместите следующие строки в конец файла: (измените домашний адрес hadoop на свой)

# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop

# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-6-sun

# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs="hadoop fs"
unalias hls &> /dev/null
alias hls="fs -ls"

# If you have LZO compression enabled in your Hadoop cluster and
# compress job outputs with LZOP (not covered in this tutorial):
# Conveniently inspect an LZOP compressed file from the command
# line; run via:
#
# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo
#
# Requires installed 'lzop' command.
#
lzohead () {
    hadoop fs -cat $1 | lzop -dc | head -1000 | less
}

# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin

шаг 2: отредактируйте файл hadoop-env.sh следующим образом:

# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/java-6-sun

Шаг 3. Теперь создайте каталог и установите необходимые права собственности и разрешения.

$ sudo mkdir -p /app/hadoop/tmp
$ sudo chown hduser:hadoop /app/hadoop/tmp
# ...and if you want to tighten up security, chmod from 755 to 750...
$ sudo chmod 750 /app/hadoop/tmp

шаг 4: отредактируйте core-site.xml

<property>
  <name>hadoop.tmp.dir</name>
  <value>/app/hadoop/tmp</value>
</property>

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:54310</value>
</property>

шаг 5: отредактируйте mapred-site.xml

<property>
  <name>mapred.job.tracker</name>
  <value>localhost:54311</value>
</property>

шаг 6: отредактируйте hdfs-site.xml

<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

наконец, отформатируйте свой hdfs (вам нужно сделать это при первой настройке кластера Hadoop)

 $ /usr/local/hadoop/bin/hadoop namenode -format

Надеюсь, что это поможет вам

person Yosser Abdellatif Goupil    schedule 28.04.2015
comment
спасибо, это сработало с проблемой, когда папка tmp не создана - person rahul; 20.12.2016
comment
В моем случае мне просто пришлось удалить завершающую косую черту из строки export JAVA_HOME = / usr / lib / jvm / java-6-sun / в файле hadoop-env.sh - person Rohit Rokde; 06.01.2017

У меня такая же проблема. Вы можете видеть, что при вводе работают демоны Name node, DataNode, Resource manager и Task Manager. Так что просто запустите start-all.sh, тогда все демоны начнут работать, и теперь вы можете получить доступ к HDFS.

person Durga Chava    schedule 04.06.2017

Сначала проверьте, работают ли java-процессы или нет, набрав команду jps в командной строке. При запуске команды jps следующие процессы являются обязательными для запуска - >>

  • DataNode
  • jps
  • Имя Узел
  • SecondaryNameNode

Если следующие процессы не запущены, сначала запустите узел имени, используя следующую команду - >> start-dfs.sh

Это сработало для меня и устранило указанную вами ошибку.

person Gaurav Chandani    schedule 08.09.2017

У меня была аналогичная ошибка. После проверки я обнаружил, что моя служба namenode остановлена.

проверить статус namenode sudo status hadoop-hdfs-namenode

если он не в запущенном / рабочем состоянии

запустить службу namenode sudo start hadoop-hdfs-namenode

Помните, что требуется время, прежде чем служба узла имен станет полностью функциональной после перезапуска. Он читает все правки hdfs в памяти. Вы можете проверить, как это происходит в / var / log / hadoop-hdfs /, используя команду tail -f /var/log/hadoop-hdfs/{Latest log file}

person Manish Mehra    schedule 16.09.2017