Hive调优总结

本文总结了Hive调优的核心法则和常用手段,包括减少map扫描数据量、优化SQL查询如避免select *、减少count(distinct)使用、map端部分聚合、优化join操作、并行执行与union all优化等,旨在提升Hive任务的性能和资源利用率。
摘要由CSDN通过智能技术生成

一、hive优化核心法则:

1、保证map扫描的数据量尽量少

2、保证map传送给reduce的数据量尽量少

3、保证map和reduce处理的数据量尽量均衡

二、hive常用优化手段

1、尽量尽早的过滤数据和分组聚合,只查询需要的字段

这样做节省了读取开销,中间表存储开销和数据整合开销,是优化的核心所在。
例如:

select 
    ... 
from A  
join B
  on A.key = B.key where A.userid>10
      and B.userid<10
      and A.dt='20190417'
      and B.dt='20190417';

应该改为:

select 
    .... 
from 
    (
    select 
        .... 
    from A
    where dt='201900417'
       and userid>10
    ) a
join 
    ( 
    select 
        .... 
    from B
    where dt='201900417'
        and userid < 10   
     ) b
on a.key = b.key
;

虽然hive在这方面有优化,谓词下推 Predicate Pushdown(PPD):就是在不影响结果的情况下,尽量将过滤条件提前执行。谓词下推后,过滤条件在map端执行,减少了map端的输出,降低了数据在集群上传输的量,节约了集群的资源,也提升了任务的性能。但也是有规则的,文后附件有PDD规则表
尽量不要使用select * , 大部分场景下都不需要全部数据的,更多的是为了方便而写的。

2、尽量少用或不用count(distinct )
count(distinct

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值