Hadoop源碼分析一架構(gòu)關(guān)系簡介
1、 簡介
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)
Hadoop起源于谷歌發(fā)布的三篇論文:GFS、MapReduce、BigTable。其中GFS是谷歌的分布式文件存儲系統(tǒng),MapReduce是基于這個分布式文件存儲系統(tǒng)的一個計算框架,BigTable是一個分布式的數(shù)據(jù)庫。hadoop實現(xiàn)了論文GFS和MapReduce中的內(nèi)容,Hbase的實現(xiàn)了參考了論文BigTable。
2、 hadoop架構(gòu)
hadoop主要有三個組件
HDFS、YARN和MapReduce。其中YARN是hadoop2.x版本推出的。本文基于hadoop2.7.6分析。
HDFS是基于谷歌的GFS實現(xiàn)的,它是一個分布式的文件系統(tǒng)。YARN是一個資源管理系統(tǒng),主要負(fù)責(zé)管理集群內(nèi)的cpu和內(nèi)存等資源,為MapReduce等計算任務(wù)分配資源。MapReduce即上文提到的計算框架。
hadoop的這三個組件間的關(guān)系如下圖:
在hadoop1.x中YARN和MapReduce是集成在一起的,沒有單獨(dú)的資源管理,MapReduce執(zhí)行時需要的資源由其自身的服務(wù)來確定。在2.x版本后將資源管理獨(dú)立了出來,將資源管理和計算進(jìn)行解耦合,使得大數(shù)據(jù)的其他計算框架也可以使用hadoop的資源管理系統(tǒng)。這樣可以保證集群內(nèi)的資源的統(tǒng)一調(diào)配。
3、 源碼分析思路
在分析hadoop之前需要配置部署一個hadoop平臺
然后先從hdfs開始分析,hdfs是yarn和MapReduce的根基。
hdfs是一個文件系統(tǒng),它涉及的角色較多,主要會先從namenode開始解析,namenode屬于hdfs的中心節(jié)點(diǎn),hdfs的所有角色都與其有交互。
解析namenode,首先需要解析其啟動過程,namenode的啟動過程較為復(fù)雜,與其他角色也有交互,所以在這個過程中也會解析其他的角色與節(jié)點(diǎn)。
然后使用一個文件的上傳與下載,來解析hdfs的文件操作。
解析完了hdfs之后在繼續(xù)解析yarn和MapReduce,因為者兩個原本就是在一起協(xié)同工作的,所以解析這兩個的時候需要一起解析。解析yarn和MapReduce的時候,使用一個MapReduce程序,以其在整個框架中的執(zhí)行流程來分析這個兩個框架。
以上就是Hadoop源碼分析一架構(gòu)關(guān)系簡介的詳細(xì)內(nèi)容,本系列下一篇文章傳送門Hadoop源碼分析二安裝配置過程詳解
后續(xù)Hadoop源碼分析系列文章的資料請持續(xù)關(guān)注腳本之家!
相關(guān)文章
Java中的關(guān)鍵字synchronized 詳解
這篇文章主要介紹了Java中的關(guān)鍵字synchronized,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Java多線程之scheduledThreadPool的方法解析
這篇文章主要介紹了Java多線程之scheduledThreadPool的方法解析,queue是DelayedWorkQueue,但通過后面的分析可以知道,最大線程數(shù)是不起作用的,最多會起核心線程數(shù)的數(shù)量,需要的朋友可以參考下2023-12-12springboot中的靜態(tài)資源加載順序優(yōu)先級
這篇文章主要介紹了springboot中的靜態(tài)資源加載順序優(yōu)先級,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09SpringBoot如何使用feign實現(xiàn)遠(yuǎn)程接口調(diào)用和錯誤熔斷
這篇文章主要介紹了SpringBoot如何使用feign實現(xiàn)遠(yuǎn)程接口調(diào)用和錯誤熔斷,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12基于javaweb+jsp的游泳館會員管理系統(tǒng)(附源碼)
這篇文章主要介紹了基于javaweb+jsp的游泳館會員管理系統(tǒng),開發(fā)工具eclipse/idea/myeclipse/sts等均可配置運(yùn)行,此源代碼社和課程設(shè)計,大作業(yè)及畢業(yè)設(shè)計項目,需要的朋友可以參考下2022-04-04SpringBoot整合MyBatis四種常用的分頁方式(詳細(xì)總結(jié))
這篇文章詳細(xì)給大家總結(jié)了SpringBoot整合MyBatis四種常用的分頁方式,文中通過代碼示例為大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法
本篇文章主要介紹了java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02