0

私のハイブ テーブルはすべて lzo 圧縮タイプです。次のような 2 つの 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