Hadoop大資料開發框架學習

jokerhzf發表於2018-08-31

一.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方法


相關文章