源数据放在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 | 原始数据 | 1134 | 26413896039 | 66.297s | ||
238610458 | seq | 98.528(block) 418.936(record) | 1134 | 32252973826 | 41.578 | 394.949s(读入数据:32,253,519,280,读入行数:238610458) |
238610458 | rcfile | 253.876 s | 15 | 3765481781 | 29.318 | 286.588s(读入数据:1,358,993,读入行数:238610458 |