手撕JAVA(二十六)簡單聊聊大數據(中)hadoop那些事兒

Hadoop生態圈

Hadoop是個生態系統,有很多組件,Hadoop是整個系統的總稱。

 

整個系統的最核心層是數據存儲層(Data Storage),由數據管控層(Workload Management)來統一管理數據、資源分配。整個系統的最核心層是數據存儲層(Data Storage),由數據管控層(Workload Management)來統一管理數據、資源分配。

 

Hadoop組件

Hadoop其實是指兩個核心組件(也可以說是三個):YARM and MapReduce、Hadoop Distributed File System(HDFS)。

圍繞核心組件拓展出很多周邊組件來拓展功能。

核心組件

管理組件(Resource Management):YARM

存儲組件(Storage):HDFS

運算組件(Processing):Spark、MapReduce。二者功能相同,二選一使用。

 

HDFS

HDFS可以理解爲一個文件存儲的服務器集羣有NameNode和DataNode兩種角色,NameNode存儲文件位置信息,DataNode存儲文件。

數據在加載時拆分成塊(默認爲128MB)進行分佈,然後每個快被複制到多個數據節點中(默認爲三分),比如1G的文件會存儲爲3G,就是爲了提供冗餘性和容錯性,單節點掛掉以後不影響系統正常工作。NameNode根據每個節點的具體存儲情況來做出合理分佈,將這三分文件分佈到集羣中去,總體來說塊的分佈是均勻的,不會出現一個節點裏面出現多個相同數據的相同塊。

分副本的過程是由namenode寫第一個副本到第一個datanode中,然後該datanode再寫給第二個datanode,第二個再寫給第三個datanode……每次寫入以被寫入節點返回成功標識,判斷爲寫入成功。失敗就重寫。

YARN

Yet Another Resource Negotiator

負責資源管理、調度管理。

yarn有四個進程,就是這四個進程分散在集羣中完成了整個集羣的調度和管理。

MapReduce

計算引擎

MapReduce其實本質就是分治法

將1000頓貨從A點運到B點,20臺貨車同時運貨,各自運輸,最後合起來就好。

將輸入分割成多個mapping任務,然後去集羣上統計數據(shuffling),然後reducing得到最終結果。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章