2010-12-09 11 views
2

Cloudera HadoopのWordCountの例をデバッグしようとしていますが、できません。マッパーとレデューサークラスを記録しましたが、コンソールログを表示されません。ログはコンソールに表示されません。([Hadoop Question]

私は画像を添付します。最初の画像で 、Javaのログ。

二イマヘンでは、結果のログ。これは最初のものを表示されません:( http://i56.tinypic.com/2eztkli.png

誰でも知っていますか?ありがとうございます。

答えて

2

あなたがやっている「のHadoop jarを...」あなたは、実際のHadoopクラスタ(おそらく単一ノード)を使用して、あなたの仕事を始めているそう。

これは、すべてのログは、クラスタではなく、コンソール上で行われることを意味します。 コンソールに表示されるのは、本質的に進捗インジケータだけです。

あなたの仕事は、一個の以上のマップタスクに分割し、1つ以上のタスクを減らしています。これらのタスクはそれぞれ独立したJavaプロセスであり、個々のロギング(複数のファイルで構成されています)を行います。

多くのことをあなたがいないこれらのログファイルは、「1」の巨大なログファイルになりたいん並行して行われているのであなたは$ HADOOP_LOG_DIR/userlogs

でこれらのログファイルを見つける必要があります。それは役に立たない混乱になるでしょう。

学習のための今

とのHadoopアプリケーションを開発することは出てもっと簡単な方法があります:単に単に通常のJavaアプリケーションとして起動することにより、ローカルモードでアプリケーションを実行します。java -jar ...

0

表示したい場合はコンソールの情報はSystem.out.println( "blah")を実行します。ちょうどあなたの場合は、コンソールにパントするためにHadoopのログをふるいなど、最高の退屈さ(引数が間違っている場合などの使用を)引数を渡すと、あなたの瓶にちょうど1つのジョブよりも多くを行うときに、あなたのJavaの仕事で、それは特に適しています本当の仕事をしている。

1

ああ、それは簡単な修正です。 System.out.println()を使用して、jobtrackerのHTMLインタフェースを調べます。 MapまたはReduceを行ったタスク(printlnを含む)に行き、そのタスクのログレポートに進むと、アウトプットがそこに表示されます。