Подтвердить что ты не робот

Hasoop 2.2.0 64-битная установка, но не может запускаться

Я пытаюсь установить кластер Hadoop 2.2.0 на серверы. Пока все серверы 64-разрядные, я загружаю Hadoop 2.2.0 и все конфигурационные файлы были настроены. Когда я бегу. /start -dfs.sh, я получил следующую ошибку:

13/11/15 14:29:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /home/hchen/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.It highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.namenode]
sed: -e expression #1, char 6: unknown option to `s' have: ssh: Could not resolve hostname have: Name or service not known
HotSpot(TM): ssh: Could not resolve hostname HotSpot(TM): Name or service not known
-c: Unknown cipher type 'cd'
Java: ssh: Could not resolve hostname Java: Name or service not known
The authenticity of host 'namenode (192.168.1.62)' can't be established.
RSA key fingerprint is 65:f9:aa:7c:8f:fc:74:e4:c7:a2:f5:7f:d2:cd:55:d4.
Are you sure you want to continue connecting (yes/no)? VM: ssh: Could not resolve        hostname VM: Name or service not known
You: ssh: Could not resolve hostname You: Name or service not known
warning:: ssh: Could not resolve hostname warning:: Name or service not known
library: ssh: Could not resolve hostname library: Name or service not known
have: ssh: Could not resolve hostname have: Name or service not known
64-Bit: ssh: Could not resolve hostname 64-Bit: Name or service not known
...

Помимо 64-битных, есть ли другие ошибки? Я завершил вход между namenode и datanodes без пароля, что означают другие ошибки?

4b9b3361

Ответ 1

Добавьте следующие записи в .bashrc, где HADOOP_HOME - это папка вашего приложения:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

Кроме того, выполните следующие команды:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Ответ 2

Основная причина в том, что встроенная библиотека по умолчанию в hadoop построена для 32-разрядных. Решение

1) Установите некоторые переменные среды в .bash_profile. См. https://gist.github.com/ruo91/7154697 Или

2) Перестройте свою родную библиотеку hadoop, пожалуйста, обратитесь к http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html

Ответ 3

Вы также можете экспортировать переменные в hadoop-env.sh

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

/usr/local/hadoop - папка с установкой myoop

#Hadoop variables
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 # your jdk install path
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

Ответ 4

Я думаю, что единственная проблема здесь такая же, как в этом вопросе, поэтому решение тоже одно и то же:


Остановите JVM от печати предупреждения о безопасности стека в stdout/stderr, потому что это то, что прерывает запуск HDFS script.


Сделайте это, заменив строку etc/hadoop/hadoop-env.sh:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"

с:

export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"


(Это решение найдено на Дневник Sumit Chawla)

Ответ 5

Проблема не в родной библиотеке. Пожалуйста, убедитесь, что это просто предупреждение. Пожалуйста, экспортируйте переменные hadoop, упомянутые выше. Это будет работать

Ответ 6

У вас есть три проблемы:

  • " Невозможно загрузить библиотеку native-hadoop, как сказал @Nogard. Его ответ решает эту проблему.
  • " Невозможно установить подлинность узла namenode (192.168.1.62).", потому что у вас нет аутентификации ssh. Сделайте это:

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys scp ~/.ssh/authorized_keys [email protected]:/home/your_install_user/.ssh/

  • " sed: -e выражение # 1, char 6: неизвестная опция` s 'имеет: ssh: не удалось разрешить имя хоста: имя или услуга неизвестны HotSpot (TM): ssh: не удалось разрешить имя хоста HotSpot (TM): имя или услуга неизвестны -c: "

    Попробуйте это: отредактируйте свой .bash_profile или .bashrc и поместите в него:

    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
    

    и source .bash_profile или source .bashr, чтобы сделать изменение эффективным.

Ответ 7

У меня была аналогичная проблема, и я не мог решить ее после выполнения всех приведенных выше предложений.

Наконец понял, что настроенное имя хоста и IP-адрес не назначены для него.

Мое имя хоста vagrant, и оно настроено в /etc/hostname. Но я обнаружил, что IP-адрес для бродяги не назначен в /etc/hosts. В /etc/hosts я нашел IP-адрес только для localhost.

Как только я обновил имя хоста для localhost и vagrant, все указанные проблемы будут устранены.

Ответ 8

Убедитесь, что ваши HADOOP_HOME и HADOOP_PREFIX установлены правильно. У меня была эта проблема. Кроме того, ssh passwordless необходимо правильно настроить.