大資料運算模型 MapReduce 原理

來源:互聯網
上載者:User

標籤:copy   原理   分配   googl   自己   技術   data   span   nec   

大資料運算模型 MapReduce 原理2016-01-24 杜亦舒

MapReduce 是一個大資料集合的並行運算模型,由google提出,現在流行的hadoop中也使用了MapReduce作為計算模型

MapReduce 通俗解釋


圖書館要清點圖書數量,有10個書架,管理員為了加快統計速度,找來了10個同學,每個同學負責統計一個書架的圖書數量

張同學 統計 書架1
王同學 統計 書架2
劉同學 統計 書架3
......


過了一會兒,10個同學陸續到管理員這彙報自己的統計數字,管理員把各個數字加起來,就得到了圖書總數

這個過程就可以理解為MapReduce的工作過程

MapReduce中有兩個核心操作

(1)map

管理員分配哪個同學統計哪個書架,每個同學都進行相同的“統計”操作,這個過程就是map

(2)reduce

管理員把每個同學的結果進行匯總,這個過程就是reduce

 

MapReduce 工作過程拆解


下面通過一個經典案例(單詞統計)看MapReduce是如何工作的

有一個文字檔,被分成了4份,分別放到了4台伺服器中儲存

Text 1: the weather is good         
Text 2: today is good
Text 3: good weather is good     
Text 4: today has good weather

需求:統計出每個單詞的出現次數

處理過程

01

分詞處理


map節點 1

輸入:(text1, “the weather is good”)

輸出:(the, 1), (weather, 1), (is, 1), (good, 1)



map節點 2

輸入:(text2, “today is good”)

輸出:(today, 1), (is, 1), (good, 1)



map節點 3

輸入:(text3, “good weather is good”)

輸出:(good, 1), (weather, 1), (is, 1), (good, 1)



map節點 4

輸入:(text3, “today has good weather”)

輸出:(today, 1), (has, 1), (good, 1), (weather, 1)



02

排序


map節點 1



map節點 2



map節點 3



map節點 4



03

合并


map節點 1



map節點 2



map節點 3



map節點 4



04

匯總統計


MapReduce引入了barrier概念,有的譯為“同步障”,我理解為“分界線”,是進入reduce的一道分界線

barrier的作用是對合并結果進行組合

例如使用了3個reduce節點,需要對上面4個map節點的結果進行重新組合,把相同的單詞放在一起,並分配給3個reduce節點

reduce節點進行統計,計算出最終結果

大資料運算模型 MapReduce 原理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.