Hive入门(二)之Hive调优

在项目开发过程中,使用hive进行数据处理和分析的时候经常会出现问题,如:GC,数据倾斜,这些都是老生常谈的问题了,下面概括几个常用的hive调优方法

Hive调优

1)map端join

1)如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成CommonJoin,即:在Reduce阶段完成join。
容易发生数据倾斜。可以用MapJoin把小表全部加载到内存在map端进行join,避免reducer处理。
2)set  hive.auto.convert.join=true;

2)行列过滤

行处理:在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT*
列处理:表关联的时候,先在on前面加上过滤条件,这样会先过滤再关联表;如果在where后面加过滤条件,会先全表关联再过滤

3)使用Tez计算引擎

命令行:set hive.execution.engine=tez;
修改配置文件

4)采用分区、分桶技术

但少用动态分区

5)并行度优化

1)调整map数量
	增加map数量的情况:任务产生的小文件大小接近块大小,但是文件的结构非常简单,只有一个或两个字段,却有上千万条的数据,如果map数量过少,每个map处理的逻辑又非常复杂的话&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值