0

我的蜂巢表都是 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倍。

你能帮我找出原因吗。

4

0 回答 0