Hive 压缩比较

set hive.exec.compress.intermediate=false;
set mapred.output.compress=false;

create table a as select * from dimdate;
Table default.a stats: [numFiles=1, numRows=1188, totalSize=90068, rawDataSize=88880]
Job 0: Map: 1   Cumulative CPU: 1.88 sec   HDFS Read: 6083 HDFS Write: 90138 SUCCESS

 通过 hdfs dfs -cat /filepath  查看a 是否被压缩

可以看出没压缩的时候 a表有 1个文件 1188行 9k的大小 裸数据大小8k

再看压缩的

set hive.exec.compress.intermediate=true;
set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

create table a_gz as select * from dimdate;
Table default.a_gz stats: [numFiles=1, numRows=1188, totalSize=11316, rawDataSize=88880]
MapReduce Jobs Launched:
Job 0: Map: 1   Cumulative CPU: 1.31 sec   HDFS Read: 6083 HDFS Write: 11389 SUCCESS

 压缩后 大小变成了1k,而去 write的数据也从9k变成了1k

因为是压缩文件 就不能用 dfs -cat 了

所以要用 zact +filepath

压不压还是区别蛮大的.但是对于自带压缩的文件格式,比如orc

hive.exec.compress.output 是true或者是false 都是一样的 因为orc 默认是zilb压缩

猜你喜欢

转载自tobyqiu.iteye.com/blog/2069033