Mapper から得た出力に少し混乱しています。
たとえば、次の入力テキストを使用して単純なワードカウント プログラムを実行すると、次のようになります。
hello world
Hadoop programming
mapreduce wordcount
lets see if this works
12345678
hello world
mapreduce wordcount
これは私が得る出力です:
12345678 1
Hadoop 1
hello 1
hello 1
if 1
lets 1
mapreduce 1
mapreduce 1
programming 1
see 1
this 1
wordcount 1
wordcount 1
works 1
world 1
world 1
ご覧のとおり、マッパーからの出力は既にソートされています。私はまったく走りませんでしたReducer
。しかし、別のプロジェクトで、マッパーからの出力がソートされていないことがわかりました。だから私はこれについて完全に明確です..
私の質問は次のとおりです。
- マッパーの出力は常にソートされていますか?
- 並べ替えフェーズはすでにマッパー フェーズに統合されているため、マップ フェーズの出力は中間データで既に並べ替えられていますか?
- フェーズからデータを収集し、
sort and shuffle
Reducer に送られる前に保持する方法はありますか? レデューサーには、キーとイテラブルのリストが表示されます。このデータを永続化する方法はありますか?