web-dev-qa-db-fra.com

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

J'utilise docker-spark . Après avoir démarré spark-Shell, il affiche:

15/05/21 04:28:22 DEBUG NativeCodeLoader: Failed to load native-hadoop with error: Java.lang.UnsatisfiedLinkError:no hadoop in Java.library.path
15/05/21 04:28:22 DEBUG NativeCodeLoader: Java.library.path=/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib

Les variables d'environnement de ce spark container sont:

bash-4.1# export
declare -x BOOTSTRAP="/etc/bootstrap.sh"
declare -x HADOOP_COMMON_HOME="/usr/local/hadoop"
declare -x HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"
declare -x HADOOP_HDFS_HOME="/usr/local/hadoop"
declare -x HADOOP_MAPRED_HOME="/usr/local/hadoop"
declare -x HADOOP_PREFIX="/usr/local/hadoop"
declare -x HADOOP_YARN_HOME="/usr/local/hadoop"
declare -x HOME="/"
declare -x HOSTNAME="sandbox"
declare -x Java_HOME="/usr/Java/default"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/Java/default/bin:/usr/local/spark/bin:/usr/local/hadoop/bin"
declare -x PWD="/"
declare -x SHLVL="3"
declare -x SPARK_HOME="/usr/local/spark"
declare -x SPARK_JAR="hdfs:///spark/spark-Assembly-1.3.0-hadoop2.4.0.jar"
declare -x TERM="xterm"
declare -x YARN_CONF_DIR="/usr/local/hadoop/etc/hadoop"

Après avoir référé Hadoop "Impossible de charger la bibliothèque native-hadoop pour votre plate-forme" erreur sur CentOS , j'ai fait ce qui suit:

(1) Vérifiez la bibliothèque hadoop:

bash-4.1# file /usr/local/hadoop/lib/native/libhadoop.so.1.1.0
/usr/local/hadoop/lib/native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

Oui, ça l'est 64-bit bibliothèque.

(2) Essayez d'ajouter le HADOOP_OPTS variable d'environnement:

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

Cela ne fonctionne pas et signale la même erreur.

(3) Essayez d'ajouter le HADOOP_OPTS et HADOOP_COMMON_LIB_NATIVE_DIR variable d'environnement:

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

Cela ne fonctionne toujours pas et signale la même erreur.

Quelqu'un pourrait-il donner des indices sur la question?

15
Nan Xiao

Ajout de la bibliothèque Hadoop dans LD_LIBRARY_PATH corrige ce problème:

export LD_LIBRARY_PATH="$HADOOP_HOME/lib/native/:$LD_LIBRARY_PATH"
35
Nan Xiao