1. 程式人生 > >spark on yarn的兩個warning

spark on yarn的兩個warning

文章目錄

警告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的路徑