spark性能优化:参数优化

1、num-executors

参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行。设置这个参数后,Driver在向YARN集群管理器申请资源时,YARN集群管理器会尽可能启动相应数量的Executor进程。这个参数非常之重要,如果不设置的话,默认只会给你启动少量的Executor进程,此时你的Spark作业的运行速度是非常慢的。
可以按照实际的集群数来设置。注意:设置的太少,无法充分利用集群资源;设置的太多,大部分队列无法给予充分的资源。

2、executor-memory

参数说明:设置每个Executor进程的内存。Executor内存的大小,会直接决定了Spark作业的性能,而且跟常见的JVM OOM异常,也有直接的关联。具体设置根据给予的资源最大内存限制是多少,num-executors乘以executor-memory,就是你的Spark作业申请到的总内存量(也就是所有Executor进程的内存总和)。如果你和其它作业共享了这个资源,那么申请的总内存不能超过资源总内存的1/3~1/2,避免自己的作业占用过多的资源,导致其它作业无法运行。

3、executor-cores

参数说明:用于设置每个Executor进程的CPU core数量。这个参数决定了每个Executor进程并行执行task线程的能力。因为每个CPU core同一时间只能执行一个task线程,因此每个Executor进程的CPU core数量越多,越能够快速地执行完分配给自己的所有task线程。

4、driver-memory

参数说明:该参数用于设置Driver进程的内存。

5、spark.default.parallelism

参数说明: join,reduceByKey,paralielize等操作后的RDD分区大小,即是用于设置每个stage的默认task数量。如果不设置可能会直接影响你的Spark作业性能。

猜你喜欢

转载自blog.csdn.net/lh87270202/article/details/80395893