我的蜂巢表都是 lzo 压缩类型。我有两个这样的 hive-sql:
[1]
set hive.exec.compress.output=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;
insert overwrite table a partition(dt='20160420')
select col1, col2 ... from b where dt='20160420';
因为[1] sql 没有reduce,所以会创建很多小文件。
[2]
set hive.exec.compress.output=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;
insert overwrite table a partition(dt='20160420')
select col1, col2 ... from b where dt='20160420'
sort by col1;
唯一不同的是最后一行,sql [2] 有“排序依据”。
数据数量和内容相同,但是[2]的文件大小比[1]大,我们的hdfs文件大小几乎是以前的1倍。
你能帮我找出原因吗。