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得到最終結果。