目录
2.3 executor读取hive表时单task处理数据量/无shuffle作业小文件合并
2.4 GC优化(使用较少,当尝试其他调优方法均无效时可尝试此方法)
一、常用参数
-- map端小文件合并
set hive.merge.mapfiles=true;
-- reduce端小文件合并
set hive.merge.mapredfiles=true;
-- 小文件合并的阈值
set spark.sql.mergeSmallFileSize=128000000;
-- 小文件合并的task中,每个task读取的数据量
set spark.sql.targetBytesInPartitionWhenMerge=128000000;
-- 普通task读取的数据量,原来的值是33554432 (33M)
set spark.hadoopRDD.targetBytesInPartition=256000000;
-- 启动参数
set spark.sql.rangePartition.exchangeCoordinator=true;
-- 控制shuffle阶段每个task读取的数据量为256M
--spark2只对最后一个stage进行shuffle分区合并,spark3对中间的stage也生效,在spark2的时候有些同学会依赖spark.sql.adaptive.shuffle.targetPostShuffleInputSize进行小文件合并,在spark3上如果设置的这个参数,影响了中间stage可能会使作业的运行时间变长,我们对小文件的问题有专门的feature,可以设置下面两个参数
set spark.sql.adaptive.shuffle.targetPostShuffleInputSize=256000000;
二、正文
本文目标读者为对美团点评数据仓库和Spark SQL运行原理<