Hadoop是apache用來“處理海量數據存儲和海量數據分析”的分布式系統基礎架構,更廣義的是指hadoop生態圈。
Hadoop的優勢
高可靠性:hadoop底層維護多個數據副本,即使某個計算單元故障,也不會導致數據丟失。
高擴展性:天然支持分布式,可方便的擴展至幾千個節點。
高容錯性:能夠自動將失敗的任務重新分配。
高效性:在mapReduce的思想下,hadoop是並行工作處理任務的。
Hadoop1.x和Hadoop2.x的區別

MapReduce架構概述
Mapreduce實際上就是將計算過程分類兩個階段:map和reduce
1)map階段:並行處理計算數據
2)reduce階段:對map結果進行匯總
HDFS架構概述
1. Name Node(nn) 就像一本書的目錄。存儲文件的元數據:如文件名,文件目錄結構,文件屬性(創建時間、副本數、文件權限),以及每個文件的塊列表和塊所在的dataNode等。
2. Data Node(dn) 就像一本書的詳細類容。在本地文件系統存儲文件塊數據,以及數據的校驗。
3. Seconddary Name Node(2nn) 2NN並非是NameNode熱備,他的作用是,輔助namenode工作,定期合並鏡像文件和編輯日志,緊急情況下恢復NameNode。個人理解就是,2nn幫助namenode完成edits向fsimage的合並工作。
YARN架構概述
Yarn是管理內存調度和cpu資源分配的。
*NodeManager(NM):常駐進程,類似於團隊里面的碼農,主要作用如下:
1)管理單個節點的資源。(看禪道,完成自己每天的工作安排)
2)處理來自ResourceManager的命令。(完成技術經理分配的任務)
3)處理來自ApplicationMaster的命令。(完成項目組長分配的任務)
*ApplicationMaster(AM):是ResourceManager臨時啟用的一個節點,不是常駐進程,類似於一個技術小組長:
1)負責數據的切分,任務的監控與容錯。(管理組內同事工作)
2)為應用程序申請資源分配給內部任務。(向領導為小組申請資源:人力、時間什么的)
*ResourceManager(RM) :常駐進程,一個集群只有一個,用來管理集群調度情況的,就像一個部門的技術經理一樣,其作用如下:
1)處理客戶端請求,進行資源分配與調度。(對接產品需求,分給手下的人)
2)監控nodeManager(管理團隊成員每天的工作)
3)啟動或監控applicationMaster(可能項目太小不想親自動手,臨時任命一個小組長)
*Container:非常駐進程,它是yarn中的資源抽象,他封裝了某個節點上的多維度資源,入內存,CPU,磁盤網絡等。Am就運行在這里面,Nm通過打開關閉Container開完成資源的調度。

