hive合并小文件

hadoop使用lzo压缩,block块大小为512MB

环境:hadoop2.6+hive1.2.1     lzo压缩


启动压缩
set hive.exec.compress.output=true;
set mapreduce.output.fileoutputformat.compress=true; 



一.减少map数,(当有大量小文件时,启动合并)
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set mapreduce.input.fileinputformat.split.maxsize=1073741824;
set mapreduce.input.fileinputformat.split.minsize=1;
set mapreduce.input.fileinputformat.split.minsize.per.node=536870912;
set mapreduce.input.fileinputformat.split.minsize.per.rack=536870912;

经过测试,这种设置可以在map阶段和并小文件,减少map的数量。
注意:在测试的时候,如果文件格式为Textfile,并且启用lzo压缩,不能生效。 rcfile以及orc可以生效,Textfile不启用lzo压缩也可以生效。如果是新集群的话,没有历史遗留的问题的话,建议hive都使用orc文件格式,以及启用lzo压缩。


二.MR作业结束后,判断生成文件的平均大小,如果小于阀值,就再启动一个job来合并文件
set hive.merge.mapredfiles=true;
set hive.merge.mapfiles=true;
set hive.merge.smallfiles.avgsize=268435456;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值