【Hive-优化】Hive的优化方式四(数据倾斜优化)

1)关联优化器

在Hive的一些复杂关联查询中,可能同时还包含有group by等能够触发shuffle的操作,有些时候shuffle操作是可以共享的,通过关联优化器选项,可以尽量减少复杂查询中的shuffle,从而提升性能。

set hive.optimize.correlation=true;

2)数据倾斜Skewin

2.1.基础查询数据倾斜

如果数据量很大或者出现了数据倾斜比较严重的情况,如何来优化呢?

(1)map join

(2)Bucket-Map join

(3)SMB join

2.2.表连接数据倾斜(Join skew in)

(1)运行时优化(默认关闭)

set hive.optimize.skewjoin=true;

如果大表和大表进行join操作,则可采用skewjoin(倾斜关联)来开启对倾斜数据的优化

  • skewjoin原理:

    1、对于skewjoin.key,在执行job时,将它们存入临时的HDFS目录,其它数据正常执行

    2、对倾斜数据开启map join操作(多个map并行处理),对非倾斜值采取普通join操作

    3、将倾斜数据集和非倾斜数据集进行合并Union操作。

  • 开启skewin以后,究竟多大的数据才会被认为是倾斜了的数据呢?

    #默认值100000。
    set hive.skewjoin.key=100000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值