CompositeInputFormatを使用して、ハンプジョブに入力を提供しています。Hadoopファイル分割:CompositeInputFormat:内部結合
生成される分割数は、(結合のための)CompositeInputFormatへの入力として与えられたファイルの合計数です。
ジョブはブロックサイズと最大分割サイズを完全に無視しています(CompositeInputFormatから入力を取得中)。これは長い実行中のマップタスクにつながり、入力ファイルがブロックサイズよりも大きくなるとシステムが遅くなります。
CompositeInputFormatで分割数を管理できる方法はありますか?
私は既に最大数のレデューサーを使用しています。私は複数のマップ波のためのより小さいブロックサイズが必要です。現在のところ、地図のタスクが大きすぎるため、パフォーマンスの問題やタスクの失敗が発生することがあります。 – TheHat
私はあなたが私が言っていることを理解しているとは思わない。問題は、CompositeInputFormatを使用しているときに入力分割によってマップタスクを分割できないことです。これを回避する方法は、ファイルを手動で分割することです。だから、あなたの大きなファイルを取り出し、小さなファイルに分割します。これを行う1つの方法は、私が第2段落で示唆していることです。ところで、減速機の最大数などはありません。 –
私の入力は、別のmapreduceジョブの出力です。 mapreduceジョブによる出力ファイルの数は、使用される減速タスクの数に等しい。 Redcuerタスクの最大数は、クラスタのReduceタスク容量に等しい。このシナリオでは、1つのmapreduceジョブを実行してからファイルを分割し、別のmapreduceジョブを実行することは解決策としては当てはまりません。 – TheHat