spark on yarn的兩個warning
阿新 • • 發佈:2019-01-12
文章目錄
警告1
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
具體原因是從java.library.path處沒有找到libhadoop.so,我們發現,libhadoop.so是存放在/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib/native下的。
在hadoop包中搜索發現,java.library.path被定義為$JAVA_LIBRARY_PATH
vim ~/.bash_profile
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
1.在環境變數中 增加 JAVA_LIBRARY_PATH 指向/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib/native 即可
vim $SPARK_HOME/conf/spark-env.sh
export LD_LIBRARY_PATH=$JAVA_LIBRARY_PATH
2.重啟hdfs沒有問題,但是在sparkonyarn 提交作業的時候,還是存在
這裡需要在 $SPARK_HOME/conf/spark-env.sh 增加 LD_LIBRARY_PATH 即可
警告2
WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
大致意思就是如果我們將spark應用程式提交到yarn上會從YARN端訪問Spark執行時jar,name我們應該指定spark.yarn.archive或spark.yarn.jars。如果既未指定也spark.yarn.archive未spark.yarn.jars指定,Spark將建立一個包含所有jar的zip檔案,$SPARK_HOME/jars並將其上載到分散式快取。
hdfs dfs -mkdir -p /spark/jars
hdfs dfs -put $SPARK_HOME/jars/ /spark/jars
1.建立包含jar的hdfs目錄
vim $SPARK_HOME/conf/spark-defaults.conf
spark.yarn.jars hdfs://hadoop000:9000/spark/jars/*
2.在spark的啟動項裡指定jar的路徑