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的路径

猜你喜欢

转载自blog.csdn.net/qq_36459386/article/details/85631988