2017-01-17 20 views
1

私はmap-reduceプログラムを、(現在)3つのmap-reduceフェーズで作成しています。私は別の段階を減らす必要があります - 私はIDのマップを使用することができます((key, value)を取って、それらを出力せずに出力します)が、私は余分な地図(時間と資源を賢明に)したくない単に減速機にそれらを渡す。Java Hadoop - 減速機への入力を減速機の出力にすることはできますか?

可能ですか?もしそうなら、私はどのように "仕事"をコード化するのですか?

もし私が助けてくれたら、私のコード全体を投稿することができます(前の3つのフェーズで冗長/不足しているかもしれません)。

ありがとうございました。

+0

いいえ、それはできません。マップフェーズをスキップすることはできません – vefthym

答えて

2

私はreduceのみのジョブを使用することは可能ではないと思います。さらに、減速機1の出力に減速機2を使用する場合は、マップ2を1にすることができます。これは、単に減速機1の出力に対して操作を行わず、減速機2の出力を通過させることを意味します。

リデューサノードがジョブが実行可能でない主な理由は、リデューサノードがマップノードの出力からデータを読み取り、マップが必要な理由です。このページにアクセスすることをお勧めします。これにより、地図削減ジョブの仕組み(www.javacrunch.in/MR.jsp)がクリアされます。

希望します。

+0

reducer2の出力にはreducer3の入力が必要でした。私は別の地図は必要ないと思っていますが(これは私が実際に統一地図と思っていたものですが)、私はそれを回避することはできません。ありがとうございました! – user3765713

関連する問題