Spark on Yarn提交作业优化

问题复现

我们这里直接用spark-shell测试,spark-submit底层也是调用的spark-shell

[hadoop@hadoop001 bin]$ ./spark-shell  --master yarn --name wuzhou --deploy-mode client

Spark on Yarn提交作业优化_第1张图片
我们每次在执行提交作业的脚本时,都会出现上图所示的场景;可以看出spark.yarn.jars、sparl.yarn.archive都没有配置,我们看下官网的说明

http://spark.apache.org/docs/latest/running-on-yarn.html

Spark on Yarn提交作业优化_第2张图片

官网的意思:如果spark.yarn.jars或者sparl.yarn.archive这2个属性没有设置的话,spark会把$SPARK_HOME/jars下的jar包打包,然后上传到分布式缓存,也就是hdfs

解决方法

下面是官网的说明

http://spark.apache.org/docs/latest/running-on-yarn.html

Spark on Yarn提交作业优化_第3张图片

先创建hdfs目录

[hadoop@hadoop001 bin]$ hdfs dfs -mkdir /spark-yarn-jars

然后把$SPARK_HOME/jars上传到此目录

[hadoop@hadoop001 bin]$ hdfs dfs -put ${SPARK_HOME}/jars/*.jar /spark-yarn-jars

配置spark-defaults.conf文件

[hadoop@hadoop001 bin]$ vi ${SPARK_HOME}/conf/spark-defaults.conf

//添加如下的配置
spark.yarn.jars    hdfs://hadoop001:9000/spark-yarn-jars/*.jar

重新执行spark on yarn,会发现不会再上传jars,这样执行效率会高点

Spark on Yarn提交作业优化_第4张图片

你可能感兴趣的:(Spark)