2016-06-22 6 views
0

mapreduceプログラミングの新機能で、サンプルのmapreduceコードを作成する際に間違いがあります。私は地図作成プログラムをCloudera(訓練学校が提供する)によって与えられたイメージで動かしています。希望の出力が得られなかった場合のmapreduceコードのさまざまなデバッグ方法(java形式)は何ですか?

デバッグするには、System.out.printlnステートメントをマッパーとレデューサークラスに入れます。彼らはある程度助けます。デバッガモードでマッパーまたはレデューサープログラムを実行するのは簡単ではありません。

mapreduceコードをデバッグするためのより良い方法や戦略を共有できる人はいますか?あなたは「ローカル」モードであなたのMapReduceアプリケーションを実行できるくらい ナス

+0

あなたの質問はあまりにも一般的です。私たちが手助けをするためには、あなたが何を持っているか、既に試したことを説明する必要があります。私はあなたがローカルジョブランナー(同じjvm内のすべて)でデバッグすると仮定します。これにより、IDEでブレークポイントとウォッチ変数を設定することができます。 System.out.printlnは通常は良い考えではなく、代わりにslf4jロギングを使用します。 – yurgis

+0

入手しました。申し訳ありませんが、一般的な質問を投稿しています。なぜlog4jをお勧めしなかったのか分かりますか? –

+0

これは、hadoop全体の標準的なログ記録フレームワークです。しかし、log4jの使用を制限するものではありません。あなたはlog4jブリッジを使用して、log4j.propertiesでいつものようにconfigを指定することができます – yurgis

答えて

0

感謝。ローカルモードで実行されるときは、map関数が最初に実行され、その後にreduceモードが実行される単一のプログラムとして実行されます。このモードでは、eclipseを実行中のプログラムにアタッチすることができ、任意のjavaプログラムがデバッグされるので、デバッグすることができます。このように多くの機能的な問題を処理することができます。ただし、分散処理のために論理的な問題がある場合は、ここでは検出されません。あなたは、Googleでローカルモードで実行中にあまりにも多くの情報があり、この

https://acadgild.com/blog/running-mapreduce-in-local-mode-2/

を通過することができます。あなたはそれを閲覧することもできます。

関連する問題