hive的性能优化之参数调优

记录一下自己在工作中经常用到的几个参数设置,从调整的实际效果看还是有效果的。

企业相关服务器资源配置:平均600台active的节点,
每个节点可用的内存在200G左右,可用的memory total:116T

1、set hive.exec.parallel=true;

开启job的并行:基本每个hql脚本都会开启这个参数,默认并行度为8,
在集群资源充足的情况下,可以提高job并行的数量:
set hive.exec.parallel.thread.number=16;  (企业生产中我是很少用到这个的,都是用的默认值,因为太消耗资源怕影响别的任务,搞不好会被运维抓住,邮件通报批评!当然使用时还是看具体情况吧!)

因为需求中一张表的job的数量每次基本都在20个以上,在相关维度多,涉及到的字段逻辑复杂的情况下,
一张表中job的数量会超过100个,之前做的一个需求中insert插入的脚本中job的数量达到了169个,
在测试环境运行的时候只用了一个小时就跑完了,数据量在一亿条左右,大概有一百多G。

2、set hive.map.aggr=true;

在map端中会做部分聚集操作,效率更高但需要更多的内存,可以根据自己企业的资源情况来设置,
如果我的脚本涉及到的数据量不大的话,我一般不会开启这个参数。

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

hive0.5开始的默认值,执行map前进行小文件合并,在一个job中生成的map的数量很多的时候,
和第二个参数一起开启配合使用,在实际生产中多次验证发现可以减少一倍以上的map数量。
在开启前我的一个job的map数量有577个,开启后的map的数量只有196个,极大提高程序的运行效率。

4、set mapred.max

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值