2015-05-21 5 views
14

Ich verwende docker-spark. Nach spark-shell beginnen, gibt sie:Hadoop "Kann Native-Hadoop-Bibliothek für Ihre Plattform nicht laden" Fehler auf Docker-Funke?

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 

Die Umgebungsvariablen dieser spark container sind:

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" 

Nach dem Hinweis Hadoop “Unable to load native-hadoop library for your platform” error on CentOS, ich habe folgendes getan:

(1) Überprüfen Sie die hadoop Bibliothek :

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 

Ja, es ist 64-bit Bibliothek.

(2) Versuchen Sie, die HADOOP_OPTS Umgebungsvariable hinzu:

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

Es funktioniert nicht, und meldet den gleichen Fehler. Versuchen

(3) Zugabe der HADOOP_OPTS und HADOOP_COMMON_LIB_NATIVE_DIR Umgebungsvariable:

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

Es funktioniert immer noch nicht, und meldet den gleichen Fehler.

Könnte jemand Hinweise zu diesem Problem geben?

Antwort

29

Hinzufügen der Hadoop Bibliothek in LD_LIBRARY_PATH dieses Problem zu beheben:

export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native/:$LD_LIBRARY_PATH 
+0

Dank, dass mein Problem gelöst. Ich frage mich, wie das passieren konnte, da ich den Fehler nach einer sauberen Spark-Installation nicht bekommen habe ... – jimijazz

+1

Seltsam, es ist nicht im Spark-Dokument erwähnt (https://spark.apache.org/docs/latest/hadoop -provided.html) aber es funktioniert! Vielen Dank. –

Verwandte Themen