これは、マップ タスクに関する Hadoop Web UI で見ました
Total Length = 67108863
Input split[0]:
Length = 48334
Locations:
-----------------------
Input split[1]:
Length = 48334
Locations:
-----------------------
Input split[2]:
Length = 48304
Locations:
...
-----------------------
Input split[2010]:
Length = 23388
Locations:
-----------------------
Input split[2011]:
Length = 23383
Locations:
-----------------------
私は豚を使用していますが、効率のために豚が小さな入力ファイルを pig.maxCombinedSplitSize まで結合することを知っています
わかりました...しかし、豚の実行エンジンはすべての入力ファイルをサイズで「ソート」し、それらをマップタスク用に64MBブロックに結合しているようです。
システム開発者が当時 Hadoop を使用する可能性を考慮していなかったため、現在、テスト データ用に数百万のファイルと実サーバーに数億のファイルがあるため、これは大きな問題を引き起こすと思います。
小さい入力ファイルを実サーバーで結合する方法がないので、PIG でなんとかする必要があります。ソートプロセスは絶対に不要であり、削除する必要があると思います. だから私は今、そのプロセスがPIGソースコードのどこに存在するかを見つけようとしていますが、それを行うのは困難です.
結合時に PIG が小さな入力ファイルをソートする理由と、ソースコードのその部分がどこにあるかを知っている人はいますか?