MapReduce
については、Java
,Hadoop
を使用しています。MapReduce:MapperとReducerは変数を共有できますか?
入力(txt
ファイル):
doc1 apple pizza apple
doc2 pear apple
doc3 cookie noodle apple
doc4 pizza milk
.
.
.
Mapper
上記テキストファイルの各行を読み取り、(word, 1)
を発します。しかし、Reducer
は全単語に表示される各単語の数を知っている必要があります。たとえば、「りんご」の場合はdoc1、doc2、doc3にありますので、Reducer
には「3」が必要です。
は私が考えていることは、このようなものです:行われているすべてのMapper
の仕事の後に実行するように 開始Reducer
ので、Mapper
はHashMap
それが(word, 1)
発するたびの価値を高める数えることができます。たとえば、Mapper
がdoc1
となっている場合は、内容全体が一意の単語(=> appleピザ)になります。そして、それが(word, 1)
、つまり(apple, 1)
と発するたびに、hashMap['apple'] ++
を実行します。
そして、Mapper
の仕事が完了した後には、Reducer
このHashMap
にアクセスすると、各単語がドキュメント全体に何回出現するかを使用できるようになります。
私はHow to share a variable in Mapper and Reducer class?について読んだことがありますが、私はあなたからアドバイスを受けたいと思います。
p.s申し訳ありませんが、英語は貧弱ですが、私はネイティブではありません。私が言っていることを理解できない場合は、コメントしてください。