Spark调优-防止不必要的jar包上传与分发
原创
©著作权归作者所有:来自51CTO博客作者艾文编程的原创作品,请联系作者获取转载授权,否则将追究法律责任
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
优化完成的效果如图: