一、Hadoop是什么
1)Hadoop是一個由Apache基金會所開發的分布式系統基礎架構
分布式系統,一份工作,多個服務器運行
基礎架構,像spark都是基于hadoop進行的一個存儲
2)Hadoop主要解決,海量數據的存儲和海量數據的分析計算問題
存儲是因為,傳統的工具存不了這么大的數據
計算是因為,傳統的計算工具進行不了這么大的計算
3)廣義上來說,Hadoop通常是指一個更廣泛的概念——Hadoop生態圈
- 這個生態圈還包括HBASE、HIVE、ZooKeeper
二、Hadoop發展歷史
1)Lucene框架是Doug Cutting開創的開源軟件,用Java書寫的,實現與Google類似的全文搜索功能,它提供了全文檢索引擎的架構,包括完整的查詢引擎和索引引擎。
2)2001年年底Lucenne稱為Apache基金會的一個子項目
3)對于海量數據的場景,Lucene面對與Google同樣的困難,存儲數據困難,檢索速度慢。
4)學習和模仿Google解決這些問題的辦法:微型版Nutch
5)Google是Hadoop的思想之源(Google在大數據方面的三篇論文)
GFS >> HDFS
MapReduce >> MR
BigTable >> HBase
6)2003-2004年,Google公開了部分GFS和MapReduce思想的細節,Doug Cutting用2年實現了DFS和MapReduce機制,使Nutch性能飆升
7)2005年Hadoop被引入Apache基金會
8)2006年3月,MapReduce和NDFS分別被納入了Hadoop的項目中
三、Hadoop三大發行版本
Hadoop三大發行版本:Apache、Cloudera、Hortonworks
Apache版本最基礎,對于入門學習最好
Cloudera在大型互聯網企業中用的較多(收費)
Hortonworks文檔較好
四、Hadoop的優勢
1)高可靠性:Hadoop底層維護了多個數據副本(默認3個副本,即3個備份),即使Hadoop某個計算元素或存儲出現故障,也不回導致數據的丟失
2)高擴展:在集群間分配任務數據,可方便的擴展數以千計的節點
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,加快任務處理的速度
4)高容錯性:自動將失敗的任務重新分配(有很詳細的調度機制)
五、Hadoop1.x和Hadoop2.x的區別
- 2.x有了Yarn,專門負責資源調度,功能模塊化
五、HDFS架構概述
1)NameNode(nn):存儲文件的元數據,如文件名,文件目錄結構,文件屬性(生成時間、副本數、文件權限),以及每個文件的塊列表和塊所在的DataNode等
2)DataNode(dn):在本地文件系統存儲文件塊數據,以及塊數據的校驗和
3)Secondary NameNode(2nn):用來監控HDFS狀態的輔助后臺程序,每隔一段時間獲取HDFS元數據的快照
六、YARN架構概述
1)ResourceManager(RM)主要作用如下
2)NodeManager(NM)主要作用如下
管理單個節點上的資源
處理來自ReourceManager的命令
處理來自于ApplicationMaster的命令
七、MapReduce架構概述
MapReduce將計算過程分為兩個階段:Map和Reduce
1)Map階段并行處理輸入數據
2)Reduce階段對Map結果進行匯總
八、大數據技術生態體系
九、推薦系統框架圖
參考鏈接: