題記
本文資料來源于拉鉤大數(shù)據(jù)開發(fā)高薪訓(xùn)練營。
Hadoop 由四部分組成
- Hadoop HDFS:(hadoop distribute File System)一個(gè)高可靠、高吞吐量的分布式文件存儲(chǔ)系統(tǒng)。
- Hadoop MapReduce:分布式離線計(jì)算框架
- Hadoop Yarn:任務(wù)調(diào)度和集群資源管理的框架
- Hadoop common:?持其他模塊的?具模塊(Configuration、RPC、序列化機(jī)制、?志操作)
HDFS
HDFS如名所示,Hadoop的分布式文件系統(tǒng),但是已經(jīng)可以說是整個(gè)大數(shù)據(jù)環(huán)境下的文件存儲(chǔ)系統(tǒng)。
Hadoop存儲(chǔ)文件采用分治的思想,即將一個(gè)大文件分成許多的塊分別備份存儲(chǔ),默認(rèn)的存儲(chǔ)塊大小是128mb。
總的來說,存儲(chǔ)一個(gè)文件的過程分三步:數(shù)據(jù)切割、制作副本、分散存儲(chǔ)
HDFS有三個(gè)后臺(tái)線程:

HDFS.png
圖中涉及幾個(gè)角色,這里一一介紹:
- NameNode(nn):存儲(chǔ)?件的元數(shù)據(jù),?如?件名、?件?錄結(jié)構(gòu)、?件屬性(?成時(shí)間、副本
數(shù)、?件權(quán)限),以及每個(gè)?件的塊列表和塊所在的DataNode等。 - SecondaryNameNode(2nn):輔助NameNode更好的?作,?來監(jiān)控HDFS狀態(tài)的輔助后臺(tái)程
序,每隔?段時(shí)間獲取HDFS元數(shù)據(jù)快照。 - DataNode(dn):在本地?件系統(tǒng)存儲(chǔ)?件塊數(shù)據(jù),以及塊數(shù)據(jù)的校驗(yàn)。
MapReduce
Hadoop的分布式離線計(jì)算框架
MapReduce = Map + Reduce
如上等價(jià)公式所示,MapReduce分工明確。Map階段并行地計(jì)算分片上的數(shù)據(jù),再將結(jié)果發(fā)送給進(jìn)行Reduce的節(jié)點(diǎn),進(jìn)行結(jié)果匯總輸出的階段。

MapReduce.png
Yarn
任務(wù)調(diào)度和集群資源管理框架
Yarn中有如下?個(gè)主要??,同樣,既是??名、也是進(jìn)程名,也指代所在計(jì)算機(jī)節(jié)點(diǎn)名稱。
- ResourceManager(rm):處理客戶端請(qǐng)求、啟動(dòng)/監(jiān)控ApplicationMaster、監(jiān)控NodeManager、資
源分配與調(diào)度; - NodeManager(nm):單個(gè)節(jié)點(diǎn)上的資源管理、處理來?ResourceManager的命令、處理來?
ApplicationMaster的命令; - ApplicationMaster(am):為應(yīng)?程序申請(qǐng)資源,并分配給內(nèi)部任務(wù)、負(fù)責(zé)任務(wù)的監(jiān)控與容錯(cuò)。
申請(qǐng)資源是一個(gè)動(dòng)態(tài)的過程,并不是在任務(wù)開始的時(shí)候申請(qǐng)資源便不再改變。 - Container:對(duì)任務(wù)運(yùn)?環(huán)境的抽象,封裝了CPU、內(nèi)存等多維資源以及環(huán)境變量、啟動(dòng)命令等任務(wù)運(yùn)
?相關(guān)的信息。
ResourceManager是??,NodeManager是?弟,ApplicationMaster是應(yīng)用的抽象集合。

Yarn資源調(diào)度.png