好程式設計師大資料培訓教你快速學習MapReduce
好程式設計師 大資料培訓教你快速 學習 MapReduce , 先說一下MapReduce 的定義。它是一種程式設計模型,用於大規模資料集的並行運算,名字中暗含著 "Map( 對映 )" 和 "Reduce( 歸約 )" 的意思,是從函數語言程式設計語言、向量程式語言中借鑑而來的。
MapReduce 的三層含義
1)MapReduce 是一個基於叢集的高效能平行計算平臺 (Cluster Infrastructure) 。它允許用市場上普通的商用伺服器構成一個包含數十、數百至數千個節點的分佈和平行計算叢集。
2)MapReduce 是一個平行計算與執行軟體框架 (Software Framework) 。它提供了一個龐大但設計精良的平行計算軟體框架,能自動完成計算任務的並行化處理,自動劃分計算資料和計算任務,在叢集節點上自動分配和執行任務以及收集計算結果,將資料分佈儲存、資料通訊、容錯處理等平行計算涉及到的很多系統底層的複雜細節交由系統負責處理,大大減少了軟體開發人員的負擔。
3)MapReduce 是一個並行程式設計模型與方法 (Programming Model & Methodology) 。它藉助於函式式程式設計語言 Lisp 的設計思想,提供了一種簡便的並行程式設計方法,用 Map 和 Reduce 兩個函式程式設計實現基本的平行計算任務,提供了抽象的操作和並行程式設計介面,以簡單方便地完成大規模資料的程式設計和計算處理。
MapReduce 的四大功能
1) 資料劃分和計算任務排程:
系統自動將一個作業(Job) 待處理的大資料劃分為很多個資料塊,每個資料塊對應於一個計算任務 (Task) ,並自動 排程計算節點來處理相應的資料塊。作業和任務排程功能主要負責分配和排程計算節點 (Map 節點或 Reduce 節點 ) ,同時負責監控這些節點的執行狀態,並 負責 Map 節點執行的同步控制。
2) 資料 / 程式碼互定位:
為了減少資料通訊,一個基本原則是本地化資料處理,即一個計算節點儘可能處理其本地磁碟上所分佈儲存的資料,這實現了程式碼向 資料的遷移; 當無法進行這種本地化資料處理時,再尋找其他可用節點並將資料從網路上傳送給該節點 ( 資料向程式碼遷移 ) ,但將盡可能從資料所在的本地機架上尋 找可用節點以減少通訊延遲。
3) 系統最佳化:
為了減少資料通訊開銷,中間結果資料進入Reduce 節點前會進行一定的合併處理 ; 一個 Reduce 節點所處理的資料可能會來自多個 Map 節點,為了避免 Reduce 計算階段發生資料相關性, Map 節點輸出的中間結果需使用一定的策略進行適當的劃分處理,保證相關性資料傳送到同一個 Reduce 節點 ; 此外,系統還進行一些計算效能最佳化處理,如對最慢的計算任務採用多備份執行、選最快完成者作為結果。
4) 出錯檢測和恢復:
以低端商用伺服器構成的大規模MapReduce 計算叢集中,節點硬體 ( 主機、磁碟、記憶體等 ) 出錯和軟體出錯是常態,因此 MapReduce 需要能檢測並隔離出錯節點,並排程分配新的節點接管出錯節點的計算任務。同時,系統還將維護資料儲存的可靠性,用多備份冗餘儲存機制提 高資料儲存的可靠性,並能及時檢測和恢復出錯的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2728201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線之mapreduce概述程式設計師大資料
- 好程式設計師大資料培訓分享怎樣進行大資料入門學習程式設計師大資料
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師大資料培訓分享Hadoop入門學習線路圖程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師大資料學習路線分享MapReduce全流程總結程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全過程解析程式設計師大資料
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料培訓分享MySQL8.0新特性程式設計師大資料MySql
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師大資料培訓之Hadoop常見問題程式設計師大資料Hadoop
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端培訓JavaScript學習筆記DOM程式設計師Web前端JavaScript筆記