0

map-reduce コードで助けが必要です。コードはEclipseとスタンドアロンモードで完全に実行されますが、コードをパッケージ化して疑似分散モードでローカルに実行しようとすると、出力が期待どおりになりません。

Map input records = 11
Map input records = 11

Reduce input records = 11
Reduce output records = 0

これらは私が得る値です。

同じコードを eclipse またはスタンドアロン モードで同じ構成ファイルと入力ファイルを使用して実行したときのように

Map input records = 11
Map output records = 11

Reduce input records = 11
Reduce output records = 4

誰が何が間違っているのか教えてもらえますか..??

私はEclipse用の.jarファイルを構築する両方の方法を試しました->エクスポート->実行可能なjarとフォーム端末も同様に(javac -classpath hadoop-core-1.0.4 -d classes mapredcode.java && jar -cvf mapredcode.jar -Cクラス/ 。)

そして、どうすればこれをデバッグできますか..

4

1 に答える 1

1

メソッドを使用していますcombiner()か?はいの場合。それでは、コンバイナーのo/pはマッパーのそれ​​と同じですか?

Hadoop では、Combiner は Hadoop 自体の処分で実行され、場合によっては疑似分散モードで実行されない可能性があるためです。コンバイナー自体は、ネットワーク トラフィックを下げるために使用されるリデューサーに他なりません。

また、コードは、コンバイナーが実行されていない場合でも、リデューサーがマッパーから期待される形式を取得する必要があります。

それが役に立てば幸い。

于 2013-02-07T08:26:04.807 に答える