天天看點

Hadoop大資料開發架構學習一.Hadoop架構介紹二.HDFS介紹二.Yarn四.MapReduce

一.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采用分而治之的程式設計思想

  1. 輸入一個大檔案,通過split之後,将其分為多個分片
  2. 每個檔案分片由單獨的機器去處理,這就是Map方法
  3. 将每個機器計算的結果進行彙總并得到最終的結果,這就是Reduce方法