spark版本:3.3.3
参数 | 默认值 | 含义 | 开始版本 | 建议值 | ||
|---|---|---|---|---|---|---|
执行器 | 静态分配 | spark.executor.instances | 2 | spark执行器的数量 | 启动任务时直接指定 | 100 |
动态分配 | spark.dynamicAllocation.enabled | false | 动态分配资源,如果需要动态分配改为true | 1.2.0 | true | |
spark.dynamicAllocation.minExecutors | 0 | 最小执行器的数量 | 1.2.0 | 50 | ||
spark.dynamicAllocation.initialExecutors | 0 | 初始执行器的数量,同spark.dynamicAllocation.minExecutors | 1.3.0 | 50 | ||
spark.dynamicAllocation.maxExecutors | infinity | 动态分配的最大执行器数量 | 1.2.0 | 1000 | ||
核数 | spark.driver.cores | 1 | 每个driver容器中cpu的核数 | 1.3.0 | 1 | |
spark.executor.cores | 1 | 每个执行器容器中cpu核数 | 1.0.0 | 2 | ||
内存 | 执行器内存 | spark.executor.memory | 1g | 执行器堆内存大小,格式(“k”、“m”、“g” 或 “t”),例如 512m、2g | 0.7.0 | 3g |
spark.memory.fraction | 0.6 | 堆内存中用于计算和存储的内存占比。如堆内存为10g,默认6g用于存储和计算。 | 1.6.0 | 0.6 | ||
spark.memory.storageFraction | 0.5 | 存储内存的占比, 例如:spark.memory.fraction代表内存为6g,当spark.memory.storageFraction=0.5表示3个g用于存储rdd,3个g用于计算 | 1.6.0 | 0.5 | ||
spark.executor.memoryOverhead | 执行器堆内存*0.1,最小384M | 堆外内存,存在于jvm | 2.3.0 | 1g | ||
spark.memory.offHeap.enabled | false | 是否启用非堆内存,存在于jvm外的容器中 | 1.6.0 | false | ||
spark.memory.offHeap.size | 0 | 非堆内存大小,使用字节表示 | 1.6.0 | 1073741824 (即1g) | ||
driver内存 | spark.driver.memory | 1g | driver堆内存大小,单位("k", "m", "g" or "t") 例如:512m, 2g | 1.1.1 | 3g | |
spark.driver.memoryOverhead | driver堆内存*0.1,最小384M | driver进程分配的堆外内存大小,除非另有指定,否则单位为 MiB。注意:堆外内存包括offHeap(当 spark.memory.offHeap.enabled=true 时)、其他驱动进程(例如与 PySpark 驱动程序搭配运行的 Python 进程)所使用的内存,以及在同一容器中运行的其他非驱动进程所使用的内存。运行驱动程序的容器的最大内存大小由 spark.driver.memoryOverhead 与 spark.driver.memory 的总和决定。 | 2.3.0 | 1g | ||
并行度 | map并行度 | spark.default.parallelism | spark core执行时的最大分区数 对 SQL 一般无效 | 0.5.0 | 100 | |
spark.sql.files.maxPartitionBytes | 128MB | spark map读数据时每个分区的最大字节数,适用于:Parquet, json和ORC,如果需要增加并行度调小该值,如果需要减小并行度调大该值。 | 2.0.0 | 128MB | ||
spark.files.openCostInBytes | 4194304 (4 MiB) | 衡量「打开文件的开销」的字节数(虚拟值),用于小文件合并。作用:当多个小文件总大小 < openCostInBytes 时,会被合并到同一个分区,避免过多小分区。调优:小文件极多时,调大该值(如 16MB),减少 Map 任务数。 | 2.1.0 | 67108864(64M) | ||
shuffle并行度 | spark.sql.shuffle.partitions | 200 | shuffle map写数据阶段的默认分区数 | 1.1.0 | ||
spark.sql.adaptive.enabled | true | 开启自适应查询 | 1.6.0 | |||
spark.sql.adaptive.advisoryPartitionSizeInBytes | 67108864(64m) | shuffle reduce读数据前的AQE阶段,建议的分区大小,单位字节。降低大小会增加shuffle并行度 | 3.0.0 | |||
spark.sql.adaptive.coalescePartitions.enabled | true | shuffle reduce读数据前AQE阶段,自动合并小文件 | 3.0.0 | |||
spark.sql.adaptive.coalescePartitions.minPartitionSize | 1MB | shuffle reduce读数据前AQE阶段,合并小文件后的最小分区大小 | 3.2.0 | 64MB |
评论