3

2 つのマッパーと 1 つのレデューサーを持つ mapreduce プログラムを作成しています。各マッパーにカスタムの書き込み可能なデータ型を実装しました。Datatype は多かれ少なかれ、フィールドが Text / Intwritable 値である単なるコンテナです。

したがって、Mapper 1 は id(Text)、M1Writable (3 つのフィールドで書き込み可能) を出力します

マッパー 2 出力 id(Text)、M2Writable (2 つのフィールドで書き込み可能)

レデューサーは反復可能な値を取得します

書き込み可能の 2 つのタイプが異なるため、これはどのように機能しますか?

それがどのマッパーから来たかをどのように判断できますか?

これが基本的な質問であることは知っていますが、答えを見つけるのに問題がありました。

4

1 に答える 1

2

MapReduce のマッパーは常に同じ型を出力します。

M1Writable と M2Writable が、すべてのマッパーの共通の出力タイプである共通の親クラス (MWritable など) を持たない限り、マッパー間で異なるタイプを出力することはできません。

出力元のマッパーを知るには、カスタム MWritable オブジェクトに情報を記録する必要があります。

于 2015-10-28T22:56:06.120 に答える