[MR]MapReduce的原理和工作流程


基于Hadoop的日志分析系統的設計與實現_宋愛青.caj

Paste_Image.png

//
由多個任務的作業處理流程如下圖所示,從圖中我們可以看出,每一個
任務的輸入都是由多個任務的輸出組成,這就是為什么要將map和
reduce之間的【數據流】稱為【shuffle(洗牌)】的原因。實際的要遠比圖中顯示的復雜很
多,并且的不同對于作業總得執行時間也有很大的影響。

Paste_Image.png
Paste_Image.png
Paste_Image.png

過程
收到任務的將會讀取所需的數據,從數據中解析出,然
后經過函數處理后存入本地磁盤,【map函數的輸出數據存放的位置等信息將會被回傳給master】, 再由通知執行任務的。


基于Hadoop_Hive的海量web日志處理系統的設計與實現_劉永增.caj

//編程模型
MapReduce是一種編程模型,通過將一個大的任務分解成獨立的幾個【任務集】合,并行處理【大規模數據集】。
程序用來并行地處理大規模數據。這就需要將一個任務劃分到大量的不
同的機器中去。在這種模型中,不允許執行任務的各組件之間共享數據,否則,這種模
型就不能擴展到大規模的集群中去。【組件間的通信】只有在產生新的輸出鍵值對的時候進行,此時,將這些輸出轉交到下一個執行的階段。
處理任務的涉及到的主要操作有
①鏈表處理
簡單來說,程序的作用是將由輸入數據元素組成的【鏈表轉換】成輸出數據元素組成的鏈表。會將這個過程重復做兩次,不同的是兩次
的術語不同,第一次叫做即Map、第二次叫做Reduce。

②鏈表處理的過程工作的第一個階段叫做,在這
個階段中,一個稱作的函數將輸入元素鏈表中的每一個元素轉化成一個相應的
輸出元素。如圖所示。

Paste_Image.png

③鏈表的處理過程可以把輸入元素的值按照某種【規則聚集】起
來。在這一階段中,一個稱為的函數接受來自輸入鏈表元素值的【迭代器】。然后將這些值按照某種【規則合并】,最終返回一個單一的輸出值。如圖所示。


Paste_Image.png

//
②根據keys劃分reduce空旬
在中,并不是將所有值進行。只是把所有那些
具有相同的值進行。并且,處理不同的之間是相互獨立的。也
就是說,在中,每一個分別處理的是擁有相同的“鍵”的
“值”。如圖所示。


Paste_Image.png

//p19


Paste_Image.png

從圖中我們可以看到的輸入來自于已經導入到集群中的文件。
這些文件均勻分布在所有節點中。
運行一個程序會首先在部分或者所有節點中運行任務。所有
任務都是等價的。每個任務都不會與其他交換信息、,也不會
意識到其他的存在。
階段完成后,節點之間產生的【中間鍵值對可能會進行互相交換,將擁有相
同的值提交到同一個】。整個過程中,【節點之間的互相通信】就僅
可能在這一步發生。與任務一樣,任務也不會與其他任務互相通信。通過【自動完成數據轉移】和重啟失敗節點上的仟務來保證仟
務執行的可靠性。

圖中“重組”(shuffle)的作用是當一個任務完成后,雖然仍可能繼續執行
交給它的后續其他任務。但是,它們也開始互相交換任務產生的中間輸出,把每個
輸出交到恰當的中去。這就是所謂的“重組”。生成的中間鍵值對空間中,鍵
不同的子集被賦給不同的節點,這些子集,即是所謂的“劃分”(partition)。
單個節點上的中間鍵的集合在傳送到之前會由框架進行自動
的排序(sort)。

//
除此之外,框架為了提高系統的性能還支持許多其他的優化措
施。
①組合器組合器處于之后,之前用來優化。
會接收給定節點上實例產生的數據作為輸入。在這種情況下,
的輸入就是的輸出,而不是的輸出了。

②容錯提供高容錯性的主要方式是通過任務重啟的方
式。每個稱作的任務節點不斷的與系統中的任務調度節點進行
通信。如果一個在一定的時間內默認是分鐘沒有與進行通信,
會認為該由于某種原因而崩潰了。
如果一個正處于階段時節點失效,那么其他會被要求重
新執行失敗節點上的所有的任務。如果處于階段失效,那么其他
會被要求重新執行失敗節點中失效時正在執行的所有任務。

③推測執行組成集群的機器參差不齊,有的節點機器性能
高一些,而有的節點機器性能弱一點。此時,框架可能遇到的一個
問題是,由于將任務劃分到了不同的節點上,那么有些節點因為執行緩慢而使整個程序
執行的速率降下來了。
通過稱作推測執行的方式來解決這一問題。同一份輸入可能被
多次平行的執行,以利用不同機器的執行任務的不同能力。當一個的大部分任務即
將結束的時候,將調度剩余任務的副本到那些空閑的節點上去。當任務完成的
時候,它們會將這一事實通知。不論任務的哪一個副本首先完成,它將會成
為最終的副本,。如果其他任務正在推測執行,將告訴放棄這些任
務并丟棄它們的輸出。最后,會從首先執行成功的即獲取輸入。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容

  • 1 序 2016年6月25日夜,帝都,天下著大雨,拖著行李箱和同學在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,124評論 0 12
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,807評論 18 139
  • 人生如夢 過去的事,是昨天的夢;未來的事,是明天的夢;眼前的一切,正在做夢。 濟公和尚曾說:...
    彼岸花_81d9閱讀 419評論 0 0
  • 人生最好的遇見就是不小心遇到你,我愿意一輩子陪你笑,陪你鬧,陪你哭,陪你瘋。我愿意一起變老,直到牙齒掉光的時候,還...
    Angle果丫閱讀 549評論 0 0