hive存储格式sequencefile和rcfile的对比

源数据放在test1表中,大小 26413896039 Byte。


创建sequencefile 压缩表test2,使用insert  overwrite table test2 select ...语句将test1数据导入 test2 ,设置配置项:

set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec;
SET io.seqfile.compression.type=BLOCK;
set io.compression.codecs=com.hadoop.compression.lzo.LzoCodec;

导入耗时:98.528s。另压缩类型使用默认的record,耗时为418.936s。


创建rcfile 表test3 ,同样方式导入test3。

set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec;
set io.compression.codecs=com.hadoop.compression.lzo.LzoCodec;

导入耗时 253.876s。


以下为其他统计数据对比:



rows类型合并耗时文件数总数据大小count(1)基于domain、referer求点击的top100
238610458原始数据11342641389603966.297s
238610458seq98.528(block) 418.936(record)11343225297382641.578394.949s(读入数据:32,253,519,280,读入行数:238610458)
238610458rcfile253.876 s15376548178129.318286.588s(读入数据:1,358,993,读入行数:238610458

因为原始数据中均是小文件,所以合并后文件数大量减少,但是hive实现的seqfile 处理竟然还是原来的数目。rcfile 使用lzo 压缩效果明显,7倍的压缩比率。查询数据中读入数据因为这里这涉及小部分数据,所以rcfile的表读入数据仅是seqfile的4%.而读入行数一致。


出处:http://blog.csdn.net/wf1982/article/details/7988566


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值