319 votes

Erreur Hadoop "Impossible de charger la bibliothèque native-hadoop pour votre plate-forme" sur CentOS

Je suis en train de configurer hadoop sur un serveur sous CentOs. Quand je le lance start-dfs.sh ou stop-dfs.sh, j'obtiens l'erreur suivante:

AVERTIR util.NativeCodeLoader: Impossible de charger le natif hadoop bibliothèque pour votre plate-forme de... à l'aide de builtin-classes java le cas échéant

Je suis en cours d'exécution Hadoop 2.2.0.

Faire une recherche en ligne évoqué ce lien: http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html

Cependant, le contenu de /natif/ répertoire sur hadoop 2.x semble être différent donc je ne suis pas sûr de quoi faire.

J'ai ajouté ces deux variables d'environnement dans haddop-env.sh:

l'exportation HADOOP_OPTS="$HADOOP_OPTS -Djava.de la bibliothèque.path=/usr/local/hadoop/lib/"

l'exportation HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/"

Des idées?

256voto

zhutoulala Points 1389

Je suppose que vous êtes en cours d'exécution Hadoop sur 64 bits CentOS. La raison pour laquelle vous vu que l'avertissement est le natif de Hadoop bibliothèque $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 a effectivement été compilé en 32 bits.

De toute façon, c'est juste un avertissement, et n'auront pas d'impact Hadoop de ses fonctionnalités.

Voici le chemin si vous ne voulez éliminer cet avertissement, télécharger le code source d'Hadoop et de recompiler libhadoop.so.1.0.0 sur système 64 bits, puis remplacez le 32bit.

Étapes sur la façon de recompiler le code source est inclus ici pour Ubuntu:

Bonne chance.

175voto

Hoai-Thu Vuong Points 71

il suffit d’ajouter un mot natif à votre HADOOP_OPTS comme celui-ci

export HADOOP_OPTS = "$ HADOOP_OPTS -Djava.library.path = / usr / local / hadoop / lib / native"

30voto

Neeraj Points 31

J'ai eu le même problème. Pour résoudre ce problème, ajoutez les lignes suivantes dans .bashrc :

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

24voto

koti Points 41

Dans mon cas, après avoir créé hadoop sur mon système d’exploitation Linux 64 bits, j'ai remplacé la bibliothèque native dans hadoop / lib. Le problème persiste. Ensuite, j'ai compris que l'hadoop désignait hadoop / lib et non l'hadoop / lib / native. Je viens donc de déplacer tout le contenu de la bibliothèque native vers sa bibliothèque parente. Et la mise en garde vient de disparaître.

9voto

user2229544 Points 157

@zhutoulala - FWIW vos liens ont fonctionné pour moi avec Hadoop 2.4.0, à une exception près: j'ai dû dire à Maven de ne pas construire les javadocs. J'ai également utilisé le correctif dans le premier lien pour 2.4.0 et cela a bien fonctionné. Voici la commande maven que je devais donner

 mvn package -Dmaven.javadoc.skip=true -Pdist,native -DskipTests -Dtar
 

Après avoir construit ceci et déplacé les bibliothèques, n'oubliez pas de mettre à jour hadoop-env.sh :)

Pensé que cela pourrait aider quelqu'un qui a rencontré les mêmes obstacles que moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X