Hadoop基礎:第二章 關於MapReduce
mapReduce執行策略
- map具備本地化優勢策略
map執行時優先選擇在存儲HDFS數據的服務器上執行,其次在同機架的服務器上執行,最次在其他機架服務器上執行。
hadoop執行第一步是將輸入數據分片(分成固定大小),單個分片大小要與HDFS最小數據單元相同,因爲如果一個分片大於HDFS單元的話,就無法保證分片數據在同一臺服務器上。如果跨服務器就會增加網絡傳輸數據的時間消耗。 - reduce 不具備本地化優勢策略
reduce任務執行不具備就近原則,會通過網絡將map執行結果傳輸之reduce處理的服務器中,在進行計算。
Hadoop處理流程
- map對輸入數據進行清洗、篩選工作,準備好具備計算條件的數據。
- combiner函數在map執行之後執行(可選)(在map執行的服務器上執行),對map處理結果進行二次編輯。
combiner函數針對單個map結果進行編輯(局部編輯),使用前需考慮局部編輯與全局編輯的結果是否一至。如果不一致還是將編輯放在reduce過程中 - reduce利用map(和combiner)執行結果進行計算,得到最終計算結果。