2017-09-13 3 views
1

私は16のリダクション・タスクで1つのハーフ・ジョブを実行しています。 (hadoop-1.2.1)ハーフ・レデューサーが100%進捗しましたが終了しません

いくつかは100%進歩していますが、終了しないものもあります。 彼らは100%で立ち往生し、ジョブクリーンアップ:保留中です。 ステータスには「reduce> reduce」と表示されます。

ジョブが多すぎる複数の出力を書き込むため、この問題が発生すると思います。 (約50〜100の多出力) しかし、それは私の推測です。私は、多くの複数の出力を書くことがこの問題の原因であることを正確には知らない。 誰でもこの問題の原因を詳細に教えてもらえますか? 私はこれを多く探しましたが、明確な答えが見つかりませんでした。

よろしくお願いいたします。

+0

あなたの推測は合理的です。ディスクI/OはMapReduceジョブのボトルネックになることがよくあります。 – vefthym

+0

私の推測が正しければ、複数の出力と多くの値を各減速器のpart-r-000XXファイルに書き込むことの違いは何ですか?ファイルに値を書き込んでいない複数の出力ファイルを閉じることは常に止まっているようです。ご意見ありがとうございます。 – DoDary

答えて

0

タスクログを調べましたか?あなたは、その仕事が何をしているのかを知ることができるはずです。たとえば、ファイルをマージしているかどうかを確認する必要があります。

また、レデューサーが処理しているデータの量をメモします。処理を完了しているレデューサーは、同じ時間に完了していないレデューサーよりもデータが少なくなっていますか?もしそうなら、これは減速器スキュー(データスキュー)を指し、他のものより多くの仕事をしています。

+0

タスクのログを調べたところ、「java.io.IOException:JvmValidate Failed」というエラーが表示されることがあります。私は自分のコードにいくつかの問題があると思う。私はもっ​​と見てみましょう。ご回答有難うございます。 – DoDary

+0

私はログをもっと調べました。私が上記のエラーは固まった段階ではありません。進歩が100%になった後、私はエラーを見つけることができませんでした。しかし、それは '1.0%削減>削減'を表示し、15分後に 'タスクが試行されました.201709141045_0002_r_000008_0がコミット保留中です。' 15分間ブランクがあります。 – DoDary

関連する問題