Spark调优-防止不必要的jar包上传与分发

Spark调优-防止不必要的jar包上传与分发
每个Application都会上传一个spark-assembly-x.x.x-SNAPSHOT-hadoopx.x.x-cdhx.x.x.jar的jar包,影响HDFS的性能以及占用HDFS的空间

对于用户的jar包,有时候体积也非常庞大,我们同样的方式上传hdfs上,然后直接使用。

基于YARN模式验证
bin/spark-submit  --class  org.apache.spark.examples.SparkPi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
lib/spark-examples*.jar  10

代码分发到hdfs上,如图所示:


1.2 优化方案
将系统jar包上传到hdfs上,直接使用hdfs上的文件,具体如下:
(1)修改conf/spark-default.conf添加以下配置
spark.yarn.jar hdfs://master:9000/system/spark/jars/spark-assembly-1.6.0-hadoop2.6.0.jar

(2)再次执行SparkPi,提交脚本发生了变化,如下:

bin/spark-submit  --class  org.apache.spark.examples.SparkPi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
lib/spark-examples*.jar  10

详见如图:


1.3 用户的程序上传hdfs,避免重复分发
bin/spark-submit  --class  org.apache.spark.examples.SparkPi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
hdfs://master:9000/user/spark/jars/spark-examples-1.6.0-hadoop2.6.0.jar 10

优化完成的效果如图:



参考资料:
[1] Spark On Yarn中spark.yarn.jar属性的使用
http://www.cnblogs.com/luogankun/p/4191796.html
[2] Spark on yarn 文档
http://spark.apache.org/docs/latest/running-on-yarn.html



发布了267 篇原创文章 · 获赞 66 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/shenfuli/article/details/52948060