私はMRストリーミングジョブを持っています。私のコードはC++です。マッサーだけの仕事で、減速師なし。ジョブへの入力は、3つのファイルを含むディレクトリです。 Jobは3つのマッパーを作成します。各マッパーは1つの入力ファイルを処理し、異なる形式の1つの出力ファイルを生成します。入力ファイルと出力ファイルの関連付け
MyDir/file1
MyDir/file2
MyDir/file3
出力ファイルのような、次のとおりです:私は、出力ファイルに入力ファイルを関連付けたい
MyDir/Output/part-00000
MyDir/Output/part-00001
MyDir/Output/part-00002
よう
入力ファイルがあります。例えば、入力ファイルMyDir/file1
は出力ファイルMyDir/Output/part-00002
、すなわち入力ファイルMyDir/file1
を処理したマッパーは出力ファイルMyDir/Output/part-00002
を生成した可能性があります。
この関係、つまりどの入力ファイルがどの出力ファイルに対応しているか知りたいです。これを知る簡単な方法はありますか?
私はそれを得ることはできません - あなたは例でもう少し明確になることができますか? 'Hadoopが後にもっと多くのマッパー/レデューサーを走らせることを決定した場合 - Hadoopはマッパー/レデューサーの数を飛行機に決定しません。マッパーの数は入力スプリットの数に等しく、ユーザーはリデューサーの数を指定します。 –
時間の経過とともに、異なるサイズの異なる入力ファイルに対して同じHadoopジョブを実行すると想定しています。一般的な使用例は、前日から取得したログファイルの日次分析です。 – etta
分割や.gzファイルの使用を避けることによって、各ファイルが1つのマッパーで処理されるようにすることができます。 – sunillp