资源参数说明
num-executors
参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行。
参数调优建议:每个Spark作业的运行一般设置50-100个左右。
executor-cores
参数说明:该参数用于设置每个Executor进程的CPU core数量。
参数调优建议:2-4。根据不同部门的资源队列来定,可以看看资源队列的最大CPU core限制是多少,此外,如果你是跟团队里其他人共享这个资源队列,num-executors * executor-cores不要超过队列总CPU core的1/3-1/2左右比较合适,最好的应该就是一个cpu core对应两到三个task。
executor-memory
参数说明:该参数用于设置每个Executor进程的内存。
参数调优建议:4G-8G。num-executors*executor-memory是不能超过队列的最大内存量的。此外,如果你是跟团队里其他人共享这个资源队列,那么申请的内存量最好不要超过资源队列最大总内存的1/3~1/2。
driver-memory
参数说明:该参数用于设置Driver进程的内存。
参数调优建议:Driver的内存通常来说不设置,或者设置1G左右应该就够了。唯一需要注意的一点是,如果需要使用collect算子将RDD的数据全部拉取到Driver上进行处理,那么必须确保Driver的内存足够大,否则会出现OOM内存溢出的问题。
spark.storage.memoryFraction
参数说明:该参数用于设置RDD持久化数据在Executor内存中能占的比例,默认是0.6。
参数调优建议&