web-dev-qa-db-fra.com

installation de hadoop 2.2.0 64 bits mais impossible de démarrer

J'essaie d'installer Hadoop 2.2.0 Cluster sur les serveurs. Pour l'instant, tous les serveurs sont en 64 bits, je télécharge Hadoop 2.2.0 et tous les fichiers de configuration ont été configurés. Lorsque j'exécute ./start-dfs.sh, j'ai le message d'erreur suivant:

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's 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
...

Outre le 64 bits, y a-t-il d'autres erreurs? J'ai terminé la connexion entre namenode et datanodes sans mot de passe. Que signifient les autres erreurs? 

19
user2597504

Ajoutez les entrées suivantes à .bashrc où HADOOP_HOME est votre dossier hadoop:

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

De plus, exécutez les commandes suivantes:

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

La cause principale est que la bibliothèque native par défaut dans hadoop est conçue pour la version 32 bits . 

1) Configurez certaines variables d’environnement dans .bash_profile. Veuillez vous référer à https://Gist.github.com/ruo91/7154697 Ou

2) Reconstruisez votre bibliothèque native hadoop, veuillez consulter http://hadoop.Apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html

9
Junfeng

Vous pouvez également exporter des variables dans hadoop-env.sh

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

/usr/local/hadoop - mon dossier d'installation hadoop

#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
Vadim Zin4uk

Je pense que le seul problème ici est le même que dans cette question , donc la solution est aussi la même:


Arrêtez la machine virtuelle Java d'imprimer l'avertissement de garde de pile sur stdout/stderr, car c'est ce qui rompt le script de démarrage HDFS.


Faites-le en remplaçant dans votre ligne etc/hadoop/hadoop-env.sh:

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

avec:

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


( Cette solution a été trouvée sur le blog de Sumit Chawla )

2
Greg Dubicki

Le problème ne concerne pas la bibliothèque native. S'il vous plaît voir que c'est juste un avertissement. Veuillez exporter les variables hadoop mentionnées ci-dessus. Ça marchera 

0
Kamaldeep Singh

Vous avez trois problèmes:

  1. " Impossible de charger la bibliothèque native-hadoop " comme l'a dit @Nogard. Sa réponse résout ce problème.
  2. " L'authenticité de l'hôte 'namenode (192.168.1.62)' ne peut pas être établie. " C'est parce que vous n'avez pas d'authentification SSH. Faire ceci:

    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/

  3. " sed: -e expression # 1, char 6: option inconnue à 's': ssh: impossible de résoudre le nom d'hôte have: nom ou service inconnu HotSpot (TM): ssh: impossible de résoudre le nom d'hôte (TM): Nom ou service inconnu - c:

    Essayez ceci: éditez votre .bash_profile ou .bashrc et mettez-le dedans:

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

    et source .bash_profile ou source .bashr pour que le changement prenne effet immédiatement.

0
xirong

J'ai eu le même problème et je ne pouvais pas le résoudre après avoir suivi toutes les suggestions ci-dessus.

Enfin compris que, le nom d’hôte configuré et adresse IP ne sont pas attribués pour la même chose.

Mon nom d'hôte était vagrant et il est configuré dans /etc/hostname. Mais j’ai trouvé que l’adresse IP du vagabond n’est pas attribuée dans /etc/hosts. Dans /etc/hosts, j'ai trouvé l'adresse IP pour seulement localhost.

Une fois que j'ai mis à jour le nom d'hôte pour localhost et vagrant, tous les problèmes ci-dessus sont résolus.

0