spark优化实战

spark.sql.adaptive.enabled:true
spark.sql.adaptive.skewedJoin.enabled:true
spark.sql.adaptive.skewedPartitionMaxSplits:10
spark.sql.hive.convertMetastoreParquet:false


set spark.sql.adaptive.skewedJoin.enabled=true; --开启自动处理 Join 时数据倾斜
set spark.sql.adaptive.skewedPartitionMaxSplits=20; --Join 时数据倾斜最大切分Partition数
set spark.sql.adaptive.skewedPartitionRowCountThreshold=10000000; --按行数开启自动处理 Join 时数据倾斜阈值,1千万行
set spark.sql.adaptive.skewedPartitionSizeThreshold=134217728; --按数据大小开启自动处理 Join 时数据倾斜阈值,128MB
set spark.sql.mergeSmallFileSize=134217728; --合并小文件阈值,小于128MB –
set spark.sql.adaptive.enabled=true; --开启动态设置 Shuffle Partition
set spark.sql.adaptive.shuffle.targetPostShuffleInputSize=134217728; --每个Reducer数据量超过该阈值的时候会被拆分成多个并行
set spark.sql.adaptive.join.enabled=true; --开启自动调整执行计划,需开启spark.sql.adaptive.enabled=true
set spark.sql.adaptiveBroadcastJoinThreshold=134217728; --开启自动BroadcastJoin阈值,小于128MB


spark.sql.adaptive.enabled=true
spark.sql.adaptive.skewJoin.enabled=true
spark.sql.adaptive.skewJoin.enhance.enabled=true (通用倾斜算法,可处理更多场景)
spark.sql.adaptive.forceOptimizeSkewedJoin=true (允许插入额外shuffle,可处理更多场景)
spark.sql.optimizer.dynamicPartitionPruning.enabled=true  开启动态分区裁剪之后,过滤条件都会先执行 不论是on 还是 where 还是 主副表的条件都会执行
 

加上合并小文件参数:
spark.sql.mergeSmallFiles.threshold.avgSize=64MB
spark.sql.mergeSmallFiles.maxSizePerTask=128MB
spark.sql.mergeSmallFiles.enabled=true

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值