1

私はhadoop1.0.3を使用して、いくつかのデータ処理ジョブを実行しています。レデューサーはHDFSに書き込みませんが、代わりに、レデューサーに結果を直接mongoDBに書き込ませます。最近、私は問題に直面し始めました。ジョブが「タイムアウト」して再起動することがあり、hadoopコンソールから表示されるメッセージは「タスクattempt_201301241103_0003_m_000001_0が601秒間ステータスを報告できませんでした」です。したがって、問題は、HDFSではなくmongodbに書き込むという私のアプローチにあると思います。Hadoopジョブステータスレポートを偽造したい。どうやってやるの ?助けてください。

また、レデューサーは常に0%のままであり、マップフェーズのみが%単位で一定の増分を示していることを確認しました。ジョブが完了するとすぐに、レデューサーは突然100%を表示します。

ありがとう、よろしく、モーシン

4

1 に答える 1

1

表示されているコンソールのメッセージは、マップフェーズからのものです。その中の「 m 」に注意してください。進行状況を送信し続けるには、context.progress();を実行できます。mapメソッドで。 http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/StatusReporter.html

于 2013-01-24T09:00:52.297 に答える