我嘗試瞭解MapReduce如何在最簡單的示例上工作:wordcount。MapReduce wordcount獲得唯一密鑰
取句「我是新手,我吃土豆」。
我把它分成兩部分,「我是新手」和「我吃馬鈴薯」,我發給兩位製圖員。這些映射器回答我:
I --> 1
am --> 1
a --> 1
newbie --> 1
的第一個和
and --> 1
I --> 1
eat --> 1
a --> 1
potato --> 1
的第二個。
所以現在,在主,我有這樣的數據:
I --> 1
am --> 1
a --> 1
newbie --> 1
and --> 1
I --> 1
eat --> 1
a --> 1
potato --> 1
但我減速帶在進入一個地圖也就是說,關鍵是獨一無二的。所以我必須將我得到的數據轉換爲:
I --> 1, 1
am --> 1
a --> 1, 1
newbie --> 1
and --> 1
eat --> 1
potato --> 1
然後我的減速器只是對數字進行求和。
看來這是算法中最重要的部分,因爲這裏所有的工作都完成了。非常令人驚訝的是,我在互聯網上找不到任何有關這方面的信息。他們都提供圖形和圖表的階段「排序和洗牌」(其中洗牌只是發送數據到右側的減速器和排序是按鍵排序?),但沒有更多。
這個階段是如何工作的?誰在照顧這個?這是映射的另一個階段,還是主人自己做這項工作?
我有一個字數組:arrayOfNumbers,其中所有arrayOfNumbers是[1]所以總結它有totalOccurances不會做任何事情。 – fazega
(我不想總結它,我想按鍵收集它,這有點不同。) – fazega
您的編輯 - >這意味着我不能將它分成兩個不同的減速器,我必須減少所有的數據一次(設想一個文本而不是這個簡短的句子,它會很長)。 – fazega