2

Hadoop マルチノード クラスタをセットアップした後、有名な wordcount map reduce の例を実行しました。しかし、出力は得られませんでしたが、タスクを凍結しました。ここで私が得るもの..

12/09/12 13:01:29 INFO input.FileInputFormat: Total input paths to process : 3
12/09/12 13:01:29 INFO util.NativeCodeLoader: Loaded the native-hadoop library
12/09/12 13:01:29 WARN snappy.LoadSnappy: Snappy native library not loaded
12/09/12 13:01:30 INFO mapred.JobClient: Running job: job_201209121300_0002
12/09/12 13:01:31 INFO mapred.JobClient:  map 0% reduce 0%
12/09/12 13:01:45 INFO mapred.JobClient:  map 33% reduce 0%
12/09/12 13:01:48 INFO mapred.JobClient:  map 100% reduce 0%
12/09/12 13:01:54 INFO mapred.JobClient:  map 100% reduce 11%

ただし、マスターとスレーブの両方のログに例外はありません。ただし、スレーブ タスク トラッカーでは、次のログが継続的に出力されます。

2012-09-12 13:23:14,573 INFO org.apache.hadoop.mapred.TaskTracker:     attempt_201209121300_0002_r_000000_0 0.11111112% reduce > copy (1 of 3 at 0.04 MB/s) >

この前に、hadoop の単一ノードを構成し、上記のタスクを実行すると、成功した出力が得られます。

ps : 1.2 つのノードがあり、マスターとスレーブとして動作します。両方の IP アドレスは、両方のノードの /etc/hosts にあります。
2.パスワードなしで各マスターとスレーブにsshできます。(パスワードなしのログイン)
3.マスターで start-dfs.sh を実行した後、スレーブ マシンでも実行されます (jps で確認しました)
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
5.両方のマシンでファイアウォールを無効にします。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

4

やっとできました。これが私がしたことです。mapreduceジョブを実行しているときに間違ったログをチェックしました。すべてのジョブHadoopは、logs / userlogs / job_id/*にあるいくつかのジョブログを生成します。したがって、これらのログを確認すると、UnknownHostExceptionとして知られる例外が最終的に表示されます。だから私は自分の問題を見つけました。ipadressを使用してスレーブコンピューター名をマスター/etc/ hostに追加し、hadoopマップリデュースジョブを再開します。
上記のジョブログはUIで確認できます
1.firstgotojobtracker.jsp
2.ジョブを
クリックします3.現在実行中のものを確認するか、マップをクリックするか、ログを縮小して確認します。

于 2012-09-13T05:45:46.073 に答える
2

プロパティで遊ぶことを検討しmapred.reduce.slowstart.completed.mapsます。デフォルトでは 5% に設定されており、マッパー タスクの 5% が完了したときにシャッフルが開始されることを意味します。マッパーは終了したように見えますが、プログレス バーが 100% を示していても、最後のマッパーが何らかの理由でスタックしている可能性があります。この場合、最後のマップが完了するのを待っているため、シャッフルもハングします。

これに加えて、mapred.reduce.parallel.copies(シャッフル時の並列コピー スレッドの数) を変更して、ハードウェアに適合するかどうかを確認することもできます。

于 2012-09-12T20:45:43.213 に答える