关于Spark调优相关事宜,本章先自万物起始之初,集群的资源优化讲起。
- 搭建集群
在Spark安装路径下 spark/conf/spark-env.sh配置:
SPARK_WORKER_CORES=XXX
SPARK_WORKER_MEMORY=XXX - 提交任务
提交任务命令,最好使用脚本化提交,可以在提交任务时,给当前Spark 应用程序足够的资源,提交命令:
./spark-submit –master spark://mynode1:7077 –class …. jar …
可以在—master 之后—class之前指定如下参数:
–driver-cores :
指定Driver端使用的core数。
–driver-memory:
指定Driver端使用的内存数,如果Driver端有回收数据广播的时候,可以多申请内存。
–executor-cores:
指定Executor端使用的core数,一个core可以某个时刻并行执行1个task,Executor 的core越多代表可以并行执行的task越多。
–executor-memory:
指定Executor端使用的内存,如果shuffle量多、对RDD持久化多、task创建对象多,可以申请多一些内存。
–total-executor-cores:
Standalone集群中,指定当前Spark应用程序最多使用多少core。在Standalone集群中默