What is Hadoop
- 官方文檔
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
- 釋義
Apache™Hadoop®項目開發用於可靠、可伸縮的分布式計算的開源軟件。
- 廣義
廣義上來說,Hadoop通常是指一個更廣泛的概念——Hadoop生態圈。
Hadoop起源
- Lucene框架是Doug Cutting開創的開源軟件,用Java書寫代碼,實現與Google類似的全文搜索功能,它提供了全文檢索引擎的架構,包括完整的查詢引擎和索引引擎。
- 2001年年底Lucene成為Apache基金會的一個子項目。
- 對於海量數據的場景,Lucene面對與Google同樣的困難,存儲數據困難,檢索速度慢。
- 可以說Google是Hadoop的思想之源(Google在大數據方面的三篇論文)
# Google三篇論文
GFS --->HDFS
Map-Reduce --->MR
BigTable --->HBase
- 2003-2004年,Google公開了部分GFS和MapReduce思想的細節,以此為基礎Doug Cutting等人用了2年業余時間實現了DFS和MapReduce機制,使Nutch性能飆升。
- 2005 年Hadoop 作為 Lucene的子項目 Nutch的一部分正式引入Apache基金會。
- 2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分別被納入到 Hadoop 項目中,Hadoop就此正式誕生,標志着大數據時代來臨,而名字來源於Doug Cutting兒子的玩具大象。
Hadoop三大發行版本
Hadoop優勢
- 高可靠性
Hadoop底層維護多個數據副本,所以即使Hadoop某個計算元素或存儲出現故障,也不會導致數據的丟失。
- 高擴展性
在集群間分配任務數據,可方便的擴展數以千計的節點。
- 高效性
在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。
- 高容錯性
能夠自動將失敗的任務重新分配。
Hadoop組成
- HDFS
Hadoop分布式文件系統(HDFS)是指被設計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(Distributed File System)
- MapRedurce
MapReduce是一種編程模型,用於大規模數據集(大於1TB)的並行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。
- Yarn
Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。
應用場景
Hadoop生態架構圖
