一.Hadoop架構介紹
hadoop是Apache釋出的開源分布式基礎架構
他的兩個核心是
-
HDFS
HDFS是Hadoop的檔案管理系統,負責了海量資料的存儲,是做大資料的基礎
-
MapReduce
MapReduce則是為了海量資料提供了計算
兩部分就組成了Hadoop的分布式基礎架構
二.HDFS介紹
HDFS作為Hadoop為存儲海量資料,自然有着與傳統檔案系統有着不同的結構,它是以Linux檔案系統的基礎的架構,建構裡一套分布式檔案系統,它是由一個NameNode和多台DataNode組成的。
他通過将檔案進行劃分,分成多個資料塊進行存儲。(預設64MB,一般設定為128MB,備份X3)
NameNode
- 管理檔案系統的命名空間,存放檔案中繼資料
- 維護檔案系統的所有檔案和目錄,檔案與資料塊的映射
- 記錄每個檔案中各個塊所在資料節點的資訊
DataNode
- 存儲并檢索資料塊
- 香NameNode更新所存儲塊的清單
優點
- 适合大檔案存儲,有副本政策
- 可以建構在廉價機器上,有一定容錯和恢複機制
- 支援流式資料通路,一次寫入多次讀取
缺點
- 不适合大量小檔案存儲
- 不适合并發寫入,不支援檔案随機修改
- 不支援随機讀等低延時的通路方式
二.Yarn
yarn是Hadoop 中的資料總管,MapReduce通過yarn來排程。
ResourceManager
- 配置設定和排程資源
- 啟動并監控ApplicationMaster
- 監控NodeManager
ApplicationMaster
- 為MapReduce類型程式申請資源,并配置設定給内部任務
- 負責資料的切分
- 監控任務的執行與容錯
NodeManager
- 管理單個節點的資源
- 處理來自ResourceManager的指令
- 處理來自ApplicationMaster的指令
四.MapReduce
MapReduce采用分而治之的程式設計思想
- 輸入一個大檔案,通過split之後,将其分為多個分片
- 每個檔案分片由單獨的機器去處理,這就是Map方法
- 将每個機器計算的結果進行彙總并得到最終的結果,這就是Reduce方法