13161216443

您所在位置: 首頁> 學習課程> 大數據培訓 | 大數據篇-Hadoop框架詳解

大數據培訓 | 大數據篇-Hadoop框架詳解

發布百知教育 來源:學習課程 2019-10-29

在前面文章中對大數據的基本概念及特性和hadoop生態圈的常用組件進行了簡單的介紹,從本篇開始我們就要真正開始學習框架內容及使用操作了,你準備好了嗎?


一、 概述


Hadoop是一個開源的可運行于大規模集群上的分布式并行編程框架,它實現了 Map/Reduce 計算模型。借助于 Hadoop, 程序員可以輕松地編寫分布式并行程序,將其運行于計算機集群上,完成海量數據的計算。


大數據培訓

二、 優勢


(1)可靠性:HDFS有高容錯的特性,并且采用存儲冗余數據的方式

(2)高效性:采用MapReduce來整合分析HDFS中的數據

(3)成本低:基于java語言開發,可以運行于低廉的計算機集群中

(4)運行于linux平臺

(5)支持多種編程語言


三、 Hadoop體系結構


HDFS和MapReduce是Hadoop的兩大核心。最底部的是Hadoop分布式文件系統(HDFS),它存儲 Hadoop集群中所有存儲節點上的文件。并且它會通過MapReduce 來實現對分布式并行任務處理的程序支持。HDFS的上一層是MapReduce計算引擎,該引擎由 JobTrackers 和 TaskTrackers 組成,MapReduce 在集群上實現了分布式計算和任務處理,二者相互作用,完成了Hadoop分布式集群的主要任務。(從Hadoop2.X版本又從MapReduce中分離出了Yarn組件,由yarn進行資源調度,而mapreduce則專注于進行分析計算)


四、 HDFS體系結構


一個HDFS集群是由一個NameNode節點和若干個DataNode節點組成的。其中NameNode作為主服務器,管理文件系統的命名空間和客戶端對文件的訪問操作;集群中的DataNode管理存儲的數據。HDFS 允許用戶以文件的形式存儲數據。從內部來看,文件被分成若干個數據塊,而且這若干個數據塊存放在一組DataNode上。下圖給出了HDFS 的體系結構。


五、 MapReduce體系結構


MapReduce是一種并行編程模式,這種模式使得軟件開發者可以輕松地編寫出分布式并行程序。在Hadoop的體系結構中,MapReduce是一個簡單易用的軟件框架,基于它可以將任務分發到由上千臺商用機器組成的集群上,并以一種高容錯的方式并行處理大量的數據集,實現Hadoop的并行任務處理功能。


MapReduce框架是由一個單獨運行在主節點上的JobTracker 和運行在每個集群從節點上的TaskTracker共同組成的。主節點負責調度構成一個作業的所有任務,這些任務分布在不同的從節點上。主節點監控它們的執行情況,并且重新執行之前失敗的任務;從節點僅負責由主節點指派的任務。當一個Job 被提交時,JobTracker接收到提交作業和配置信息之后,就會將配置信息等分發給從節點,同時調度任務并監控TaskTracker的執行。下圖描述了mapreduce作業的執行過程:


六、 HDFS與分布式開發


Hadoop上的并行應用程序開發是基于MapReduce 編程框架的。MapReduce 編程模型的原理是:利用一個輸入的key/value 對集合來產生一個輸出的key/value 對集合。MapReduce庫的用戶用兩個函數來表達這個計算:Map 和Reduce。用戶自定義的map函數接收一個輸入的key/value 對,然后產生一個中間key/value 對的集合。MapReduce 把所有具有相同key 值的value 集合在一起,然后傳遞給reduce 函數。用戶自定義的reduce 函數接收key 和相關的value 集合。reduce 函數合并這些value 值,形成一個較小的value 集合。一般來說,每次reduce 函數調用只產生0 或1 個輸出的value值。通常我們通過一個迭代器把中間的value 值提供給reduce 函數,這樣就可以處理無法全部放入內存中的大量的value 值集合了。


大數據培訓


或者大家可以看這張圖,就比較容易理解了(map過程就是進行原材料加工處理的過程,reduce過程就是進行組合拼裝最后得出成品的過程),如果現在不理解也沒關系,后邊在集群上跑MapReduce任務時會再根據代碼詳細去講。


以上就是本篇中關于Hadoop框架的內容分析,可能大家看了還是感覺不太清晰,不過沒關系,由單機轉向分布式,思維上要逐漸轉變。


大數據培訓:http://www.akpsimsu.com/bigdata2019




上一篇:大數據培訓 | 純干貨!埃森哲的大數據分析框架分享

下一篇:應屆生去公司找個Java程序員的職位需要什么技能?

相關推薦

www.akpsimsu.com

有位老師想和您聊一聊

關閉

立即申請