分布式計算框架MapReduce
- Hadoop組成
- 什么是計算框架
- 什么是并行計算框架
- 什么是分布式計算
- 理解MapReduce思想
- MapReduce并行計算
- Hadoop -MapReduce設計構思
Hadoop組成
Hadoop HDFS:一個高可靠、高吞吐量的分布式檔案系統,對海量資料的存盤,
Hadoop MapReduce:一個分布式的資源調度和離線并行計算框架,
Hadoop Yarn:基于HDFS,用于作業調度和集群資源管理的框架,

什么是計算框架
- 是指實作某項任務或某項作業從開始到結束的計算程序或流的結構,用于去解決或者處理某個復雜的計算問題,

什么是并行計算框架
是指為更快的計算某項任務或某項作業,將計算程式分發到多臺服務器上,使每個服務器計算總任務的一部分,多臺服務器同時計算的框架,

什么是分布式計算
分布式計算:是一種計算方法,是將該應用分解成許多小的部分,分配給多臺計算機進行處理,這樣可以節約整體計算時間,大大提高計算效率,

理解MapReduce思想
需求:有一個五層的圖書館,需要獲取圖書館中一共有多少本書,
只有一個人時,是能一本一本的數!作業量巨大,耗時較長,
分配五個人由你支配,此時你怎么支配?
五個人,每個人數一層的書量,最終將五個人的量匯總求和,就是圖書館中最終書的數量,
MapReduce的思想核心是“分而治之,先分后合”,即將一個大的、復雜的作業或任務,拆分成多個小的任務,并行處理,最終進行合并,適用于大量復雜的、時效性不高的任務處理場景(大規模離線資料處理場景),即使是發布過論文實作分布式計算的谷歌也只是實作了這種思想,而不是自己原創,
MapReduce由兩部分組成,分別是Map 和Reduce兩部分,
Map負責“分”,即把復雜的任務分解為若干個“簡單的任務”來并行處理,可以進行拆分的前提是這些小任務可以并行計算,彼此間幾乎沒有依賴關系,例如前面例子中的分配每個人數一層樓,
Reduce負責“合”,即對map階段的結果進行全域匯總,例如前面例子中將五個人的結果匯總,
MapReduce并行計算
- HDFS存盤資料時對大于128M的資料會進行資料切分,每128M一個資料塊,資料塊會分散、分布存盤到HDFS,
- MapReduce在進行計算前會復制計算程式,每個資料塊會分配一個獨立的計算程式副本(MapTack),計算時多個資料塊幾乎同時被讀取并計算,但是計算程式完全相同,最終將各個計算程式計算的結果進行匯總(Reduce來匯總)

Hadoop -MapReduce設計構思


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218545.html
標籤:其他
上一篇:《系統辨識》作業
