1. Mapreduce簡介
MapReduce是一種分布式計算模型,由Google提出,主要用于搜索領域,解決海量數據的計算問題.
MapReduce由兩個階段組成:Map和Reduce,用戶隻需要實現map()和reduce()兩個函數,即可實現分布式計算,非常簡單。
這兩個函數的形參是key、value對,表示函數的輸入信息。
MapReduce在多于10PB數據時趨向于變慢。
2. Mapreduce原理架構圖
執行步驟:
1. map任務處理
1.1 讀取輸入文件内容,解析成key、value對。對輸入文件的每一行,解析成key、value對。每一個鍵值對調用一次map函數。
1.2 寫自己的邏輯,對輸入的key、value處理,轉換成新的key、value輸出。
1.3 對輸出的key、value進行分區。
1.4 對不同分區的數據,按照key進行排序、分組。相同key的value放到一個集合中。
1.5 (可選)分組後的數據進行歸約。
2.reduce任務處理
2.1 對多個map任務的輸出,按照不同的分區,通過網絡copy到不同的reduce節點。
2.2 對多個map任務的輸出進行合并、排序。寫reduce函數自己的邏輯,對輸入的key、values處理,轉換成新的key、value輸出。
2.3 把reduce的輸出保存到文件中。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!