2016-03-19 13 views
0

私はhadoopを初めて使い、ローカルマシンでいくつかのテストを行っています。Hadoop:小さなファイル用にCombineFileInputFormatを使用するとパフォーマンスが向上しますか?

多くの小さなファイルを処理する多くのソリューションがあります。私はCombinedInputFormatを使用しています。これはCombineFileInputFormatです。

マッパーの数が100から25に変更されたのを確認します。CombinedInputFormatまた、マッパーの数が減ったためにパフォーマンスの向上が期待できますか?

私はなしCombinedInputFormat多数の小さなファイルにマップ-削減の仕事を行っています100のマッパーは10分

を取ったが、仕事をマップは、減らすときはCombinedInputFormatを実行しました。 マッパは25分33分でした。

ご協力いただければ幸いです。

+0

私は3つのノードクラスタを持つawsでこの例を実行しようとしましたが、パフォーマンスの改善は見られませんでした。合計1000個の小さなファイル。マッパーの数が1000から67に減少しました。 – Astro

答えて

0

多数の小さなファイルではなく、少数の大きなファイルでHadoopのパフォーマンスが向上します。 (「Small」はHadoop Distributed File System(HDFS)ブロックよりも大幅に小さいことを意味します。「Number」は1000sまでの範囲を意味します)。

これは、1000MBのサイズのファイルを持っている場合は、通常のTextInputFormatに基づくMap-Reduceジョブが1000のマップタスクを作成することを意味します。これらのマップタスクのそれぞれは、開始および終了に一定の時間が必要です。このタスク作成時の遅延により、ジョブのパフォーマンスが低下する可能性があります。

リソース制限のあるマルチテナントクラスタでは、多数のマップスロットを取得することも難しくなります。

ベンチマーク結果と詳細についてはlinkを参照してください。

関連する問題