Spark SQL参数调优指南

目录

1 运行行为

1.1 动态生成分区

1.2 broadcast join

使用hint强制做broadcastjoin:

1.3 动态资源分配

1.4 Shuflle相关

1.5 读ORC表优化

2 executor能力

2.1内存

2.2 executor并发度

2.3 executor读取hive表时单task处理数据量/无shuffle作业小文件合并

2.4 GC优化(使用较少,当尝试其他调优方法均无效时可尝试此方法)

3 driver指标:

3.1 内存

3.2 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运行原理<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值