Hive Archiveはファイルを統合してアーカイブし、小さなファイル数を減らす(推奨)


Hiveストレージを使用すると、Hiveテーブルのファイルサイズが大きくない場合がありますが、ファイルの数が多い場合があります.これは、HDFSのストレージ領域がしきい値に達していない可能性がありますが、ファイル数がしきい値を超えています.小さなファイルが多すぎると、クラスタ全体のパフォーマンスに影響しやすくなります.
では、小さなファイルが多い問題については、以下の処理方法があります.
1.出力時にreduceの数を減らす;しかしjobの運転が遅くなる可能性があります
2.Sparkを使用してファイルを再読み込みし、パーティションを変更して書き込みます.ここではrepartition()は推奨されません.coalesce()の使用を推奨します.
repartition()        ,     shuffle  , coalesce()    shuffle  ,         

3.Hive Archiveマージファイルでアーカイブすると、パーティションのデータが1つにマージされます.harのファイル、使い方は以下の通りです(強くお勧めします):
#   archive  
set hive.archive.enabled= true;
set hive.archive.har.parentdir.settable= true;
set har.partfile.size=1099511627776;

#   archive
alter table table_name archive PARTITION(dt='${DT}');