Hive常用的调优方法

本文介绍了Hive调优的常用方法,包括代码层面的优化,如使用group by代替distinct,避免select *,以及在join前过滤数据。此外,还讨论了处理小文件过多的问题,如使用concatenate命令和hadoop archive,以及通过设置 CombineHiveInputFormat 进行合并。并行执行和JVM重用也是提升效率的关键,通过开启hive.exec.parallel和调整相关参数可以实现。最后,推测执行可以加速作业完成,通过mapreduce.map.speculative和mapreduce.reduce.speculative参数启用。
摘要由CSDN通过智能技术生成

前言:Hive调优是日常工作中比较常见的问题,本文简要总结一下常用的调优方法。

一、代码层面的优化

1.去重两种方式:distinct和group by。推荐使用group by来对数据去重。distinct会将相同的key shuffle到一个reduce task中处理,group by 会启用多个reduce task来对数据进行分组去重。

2. 在做具体业务时,尽量明确具体的字段内容,避免使用select * 。

3.在使用join时,可以先过滤表中的数据之后再进行join。

二、小文件过多

1.使用 hive 自带的 concatenate 命令,自动合并小文件

2.使用hadoop的archive将小文件归档

3.在map执行前合并小文件,减少map数:使用CombineHiveInputFormat对小文件进行合并

set hive.input.format= org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

三、并行执行

通过设置参数hive.exec.parallel值为true,就可以开启并发执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值