爲什麼在MapReduce中需要Reduce?如果一項工作(例如統計書中單詞的數量)將導致相同的結果(如果由單個流程執行或MapReduced在服務器場中執行),那麼重複項必須被刪除的可能性有多大?我假定Reduce步驟,至少在本例中,將簡單地彙總來自每個工作進程的結果並提供本書中單詞的總數。我不明白哪裏有重複的東西出現在圖片中。是否總是需要刪除MapReduce中的重複項?
1
A
回答
1
Reduce步驟並不意味着刪除重複項(儘管在某些情況下這是一個可能的用例)。 Reduce是爲了彙總來自不同映射器的輸出而使用相同的密鑰。
例如,在單詞計數示例中,節點1可能會得到一個單詞的10個實例,例如「school」,節點2可能有15個實例,節點3 12個實例。現在如何計算總和?結果10,15和12在不同的節點上。有一個隨機播放階段,將所有這些值帶到一個節點(這是分區器分配給關鍵「學校」的縮減器)。然後減速器將具有該鍵的所有值,並且可以將它們相加。
編輯:由於鐸提到的,通過聚集我的意思是「彙集」
EDIT2的更一般意義上的聚集:爲了澄清RaffiM的疑問: 繼續上面的例子,假設節點1有1頁10,節點2有11-20頁,節點3有21-30頁。因此,在毛澤東之後,我們知道Pages 1-10有10次單詞「school」,11-20頁有15次出現,15-30次出現在第21-30頁。現在我們需要的是這個詞在整本書中出現的總次數,所以我們仍然需要添加這些詞。我們需要10 + 15 + 12 +其他頁面範圍的數字......
如果您不使用組合器,則映射器每次出現該單詞時都會發送「1」。因此,對於1-10頁,它將發送<「學校」,1>作爲輸出鍵值10次。爲了提高效率,我們使用組合器,在映射器級別對其進行彙總。因此,如果您使用組合器,它將在節點1本身中消耗此資源,併爲節點1生成合並輸出<「學校」,10>。
5
減少是一種更爲普遍的操作。這並不一定意味着「通過重複應用操作(例如求和)來聚合一堆數值」。的正式定義地圖,減少是,它是一個以下階段組成的轉化:
Map: (K k, V v) -> (K' k, V' v1 [, v2,...])
- 即在輸入有一個鍵 - 值對分別類型K和V,的操作,併產生一個密鑰可能不同類型的值的值或鍵列表結果。- 執行分區的混洗階段。
Reduce: (K' k, V' v1 [, v2,...]) -> (K' k, V'' v1 [, v2,...])
- 一種操作,用於輸入值對的鍵值列表,其中「值列表」是由Map
階段生成的與鍵k相對應的所有值的列表,並生成鍵值或鍵值。值列表配對,其中輸出密鑰必須與輸入密鑰具有相同的類型,並且該值爲任意類型。
這樣,您會發現Reduce操作更加靈活和一般。
相關問題
- 1. 此代碼是否刪除重複項?
- 2. 我是否需要刪除此對象?
- 3. 是否需要刪除靜態向量?
- 4. 我是否需要刪除對象?
- 5. 複合佈局是否總是需要它自己的類?
- 6. jquery .add()是否從新列表中刪除重複項?
- 7. 需要幫助,以正確刪除NHibernate中的重複項
- 8. 需要刪除一個項目類型重複的行而不是其他
- 9. Ajax是否總是需要使用node.js?
- 10. 是否JAXB總是需要XSD
- 11. SOAP是否總是需要WSDL?
- 12. gzip是否總是需要擴展名?
- 13. 是否總是需要創建Dim表?
- 14. PHP是否總是需要連接?
- 15. 過程是否總是需要終止?
- 16. 使用MapReduce刪除重複的記錄
- 17. 刪除Python中的重複項Pandas DataFrame不刪除重複項
- 18. 刪除和彙總重複項
- 19. 如果我有運算符T *(),是否需要重載刪除?
- 20. 在插入前檢查重複項時是否需要事務?
- 21. getpwnam_r()是否需要重入?
- 22. 是否需要重置CSS?
- 23. 如何刪除重複項是否正確?
- 24. 當變量是本地時是否需要刪除?
- 25. 是否需要從協會的雙方中刪除?
- 26. dbus總是需要總線
- 27. 刪除重複項
- 28. 刪除重複項
- 29. 從數據庫中刪除重複的聯繫人,但不在分組重複中總是保留主要
- 30. 總是需要清除緩存
在本書的例子中,爲什麼不發送頁面範圍到一個節點,節點統計該頁面範圍內的所有單詞..沒有比發送單個單詞更有效嗎? – raffian 2012-03-01 17:28:29
這正是發生的情況。但是我們需要整本書中每個單詞的計數,而不是特定的頁面範圍。我會在答案中增加更多細節以使其更清楚。 – 2012-03-01 17:45:14
我還是不明白......我們不計算單個詞的出現,只是總詞。 – raffian 2012-03-03 01:06:16