hadoop概述
一、hadoop的起源
Apache Lucene
開源的高性能全文檢索工具包
Apache Nutch
開源的web搜索引擎
google的三篇論文
GFS -> HDFS
MapReduce -> MapReduce
BigTable -> HBase
Apache Hadoop
大規模數據處理
二、hadoop的發展
* Common
工具、服務
hadoop1.x
* MapReduce
對海量數據的處理
分布式
思想:分而治之
大數據集分為小的數據集
每個數據集,進行邏輯業務處理(map)
合並統計數據結果(reduce)
* HDFS
存儲海量數據
分布式
數據安全性
副本數據(3份)
數據是以block的方式進行存儲的
NameNode
* 內存
* 本地磁盤
* fsimage:鏡像文件
* edites:編輯日誌
hadoop2.x
* YARN
分布式資源管理框架
* 管理整個集群的資源(內存、CPU核數)
* 分配調度集群的資源
三、hadoop模塊
Hadoop項目主要包括一下四個模塊:
Hadoop Common:
為其他Hadoop模塊提供基礎設施
Hadoop HDFS:
一個高可靠、高吞吐量的分布式文件系統
Hadoop MapReduce:
一個分布式的離線並行計算框架
Hadoop YARN:
一個新的MapReduce框架,任務調度與資源管理
四、HDFS系統架構
主節點:NameNode
用它來存儲文件的元數據(文件目錄、文件屬性、每個文件的塊列表和塊所在DataNode等)
從節點:DataNode
在本地文件系統存儲文件塊數據,以及數據塊的校驗和
Secondary NameNode
輔助Namenode,獲取HDFS元數據的快照(合並fsimage和edites文件)
五、YARN架構圖
ResourceManager 資源管理
* 處理客戶端請求
* 啟動/監控ApplicationMaster
* 監控NodeManager
* 資源分配與調度
NodeManager 節點資源管理
* 單個節點上的資源管理
* 處理來自ResourceManager的命令
* 處理來自ApplicationMaster的命令
ApplicationMaster 應用的管理者
* 數據切分
* 為應用程序申請資源,並分配給內部的任務
* 任務監控與容錯
Container 資源容器
六、離線計算框架 MapReduce
計算分兩個階段:
* Map 處理
* Reduce 匯總
shuffle(洗牌)連接Map和Reduce兩個階段
* Map Task 將數據寫到本地磁盤
* Reduce Task 從每個Map Task上讀取一份數據
僅適合離線批處理
* 具有很好的容錯性和擴展性
* 適合簡單的批處理任務
缺點明顯
* 啟動開銷大、過多使用磁盤導致效率低下等
七、MapReduce在YARN上執行的原理圖
hadoop概述