私のハイブ テーブルはすべて 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 倍になりました。
理由を見つけるのを手伝ってくれませんか。