关于hive优化的补充和重新描述
博客专区 > osenlin 的博客 > 博客详情
关于hive优化的补充和重新描述
osenlin 发表于2年前
关于hive优化的补充和重新描述
  • 发表于 2年前
  • 阅读 39
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

join优化

    1 小表在保证在map段join过滤大量数据

    2 自动开启map段join ,设置hive.mapjoin.smalltable.filesize大小,在这范围内为小表自动mapjoin

    3 自联结采用group by 替换join操作

Reducer数量 

    了解:hive.exec.reducers.bytes.per.reducer(默认是1GB)和hive.exec.reducer.max来决定reducer的数量

    reducer数量=min(参数2,总数据量/参数1)

列裁剪和分区裁剪

Group by优化

    1map端合并:

     参数 hive.map.aggr是否在map段进行聚合默认为true,减少中间文件的数量

     参数 hive.groupby.mapaggr.checkinterval在map段进行聚合操作的条目数目默认是10w条

    2防止数据倾斜

    hive.groupby.skewindata

合并小文件

    1使用参数

    hive.merge.mapfiles 是否合并map阶段输出的文件

    hive.merge.reducerfiles 是否合并reducer阶段输出的文件

    hive.merge.size.per.task 设置合并文件的大小默认

利用multi-group by和multi-insert有效减少表扫描次数

使用union all特定

union all 阶段不进行group by操作
select * from(
select * from a
union all
select * from b)

group by a,b,c

开启并行执行

     开启 hive.exec.parallel=true

全排序


        

共有 人打赏支持
粉丝 5
博文 44
码字总数 33068
×
osenlin
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: