常用的Spark任务参数及其作用:
-
spark.driver.memory
:设置driver进程使用的内存大小,默认为1g。 -
spark.executor.memory
:设置每个executor进程使用的内存大小,默认为1g。 -
spark.executor.cores
:设置每个executor进程使用的CPU核数,默认为1。 -
spark.default.parallelism
:设置RDD的默认并行设置,即在没有指定分区数时Spark将根据集群情况自动确定分区数量。 -
spark.memory.fraction
:设置Spark程序可使用的堆内存占JVM堆内存大小的比例,默认为0.6。 -
spark.serializer
:设置序列化方式,默认为Java序列化,也支持Kryo序列化等。 -
spark.shuffle.file.buffer
:设置shuffle过程中写入磁盘的缓冲大小,默认为32k。 -
spark.reducer.maxSizeInFlight
:设置每个reduce task所能接收的map task输出的最大数据量,默认为48MB。 -
spark.shuffle.memoryFraction
:设置shuffle操作使用的内存大小占可用堆内存大小的比例,默认为0.2。 -
spark.shuffle.compress
:设置shuffle过程中是否启用压缩,压缩后可以减少数据传输时的带宽消耗。 -
spark.driver.maxResultSize
:设置driver进程存储执行结果的最大内存空间,默认为1g。 -
spark.sql.shuffle.partitions
:设置shuffle操作所用的分区数,默认为200。