Hadoop MapReduce是一個處理大數據并行的軟件框架。
標簽:開發商: Apache
產品類型:控件
產品功能:IDE集成開發環境
平臺語言:
開源水平:不提供源碼
本產品的分類與介紹僅供參考,具體以商家網站介紹為準,如有疑問請來電 023-68661681 咨詢。
Hadoop MapReduce是一個可輕松編寫大數據應用程序的軟件框架,其編寫的應用程序能夠以可靠和高容錯的方式處理大型集群(成千上萬個節點)中海量數據集(以TB為計)的并行。
MapReduce基本結構由被稱為Map(映射)和Reduce(歸約)的兩部分用戶程序組成,它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。?當前的軟件實現是指定一個Map(映射)函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(歸約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。
聲明:本產品中文介紹為慧都網版權所有,未經慧都公司書面許可,嚴禁拷貝、轉載!
* 關于本產品的分類與介紹僅供參考,精準產品資料以官網介紹為準,如需購買請先行測試。
MapReduce采用“分而治之”的思想,把對大規模數據集的操作,分發給一個主節點管理下的各個分節點共同完成,然后通過整合各個節點的中間結果,得到最終結果。簡單地說,MapReduce就是“任務的分解與結果的匯總”。
在Hadoop中,用于執行MapReduce任務的機器角色有兩個:一個是JobTracker;另一個是TaskTracker,JobTracker是用于調度工作的,TaskTracker是用于執行工作的。一個Hadoop集群中只有一臺JobTracker。
在分布式計算中,MapReduce框架負責處理了并行編程中分布式存儲、工作調度、負載均衡、容錯均衡、容錯處理以及網絡通信等復雜問題,把處理過程高度抽象為兩個函數:map和reduce,map負責把任務分解成多個任務,reduce負責把分解后多任務處理的結果匯總起來。
需要注意的是,用MapReduce來處理的數據集(或任務)必須具備這樣的特點:待處理的數據集可以分解成許多小的數據集,而且每一個小數據集都可以完全并行地進行處理。
MapReduce提供了以下的主要功能:
系統自動將一個作業(Job)待處理的大數據劃分為很多個數據塊,每個數據塊對應于一個計算任務(Task),并自動 調度計算節點來處理相應的數據塊。作業和任務調度功能主要負責分配和調度計算節點(Map節點或Reduce節點),同時負責監控這些節點的執行狀態,并 負責Map節點執行的同步控制
為了減少數據通信,一個基本原則是本地化數據處理,即一個計算節點盡可能處理其本地磁盤上所分布存儲的數據,這實現了代碼向 數據的遷移;當無法進行這種本地化數據處理時,再尋找其他可用節點并將數據從網絡上傳送給該節點(數據向代碼遷移),但將盡可能從數據所在的本地機架上尋 找可用節點以減少通信延遲。
為了減少數據通信開銷,中間結果數據進入Reduce節點前會進行一定的合并處理;一個Reduce節點所處理的數據可能會來自多個 Map節點,為了避免Reduce計算階段發生數據相關性,Map節點輸出的中間結果需使用一定的策略進行適當的劃分處理,保證相關性數據發送到同一個 Reduce節點;此外,系統還進行一些計算性能優化處理,如對最慢的計算任務采用多備份執行、選最快完成者作為結果。
以低端商用服務器構成的大規模MapReduce計算集群中,節點硬件(主機、磁盤、內存等)出錯和軟件出錯是常態,因此 MapReduce需要能檢測并隔離出錯節點,并調度分配新的節點接管出錯節點的計算任務。同時,系統還將維護數據存儲的可靠性,用多備份冗余存儲機制提 高數據存儲的可靠性,并能及時檢測和恢復出錯的數據。
更新時間:2016-01-27 11:02:17.000 | 錄入時間:2016-01-27 11:01:49.000 | 責任編輯:陳俊吉