2.1 Hadoop簡介
第2章 Hadoop快速入門
2.1 Hadoop簡介
2.1.1 Hadoop編年史
(1)2002年10月,Doug Cutting和Mike Cafarella建立了開源網頁爬蟲專案Nutch。
(2)2003 年 Google 發表了一篇技術學術論文關於 Google 檔案系統(GFS)。GFS 也就是 Google File System,是 Google 公司為了儲存海量搜尋資料而設計的專用檔案系統。
(3)2004年7月,Doug Cutting和Mike Cafarella在Nutch中實現了類似GFS的功能,即後來HDFS的前身。
(4)2004年 Google 又發表了一篇技術學術論文,向全世界介紹了 MapReduce。2005年 Doug Cutting 又基於 MapReduce,在 Nutch 搜尋引擎實現了該功能。
(5)2005年2月,Mike Cafarella在Nutch中實現了MapReduce的最初版本。
(6)2006年1月,Doug Cutting加入Yahoo!(雅虎)。Doug Cutting 將 NDFS 和MapReduce 升級命名為 Hadoop,Hadoop正式誕生!Yahoo! 開建了一個獨立的團隊給 Goug Cutting 專門研究發展 Hadoop。
(7)2006年2月,Apache Hadoop專案正式啟動以支援MapReduce和HDFS的獨立發展。
(8)2006年11月,Google發表了Bigtable論文,這最終激發了HBase的建立。
(9)2007年,百度、中國移動開始使用使用Hadoop技術。
(9)2008年1月,Hadoop 成為了 Apache 頂級專案。之後 Hadoop 被成功的應用在了其他公司,其中包括 Last.fm、Facebook、《紐約時報》等。
(10)2008年6月,Hadoop的第一個SQL框架——Hive成為了Hadoop的子專案。
(11)2009 年3月,Cloudera推出世界上首個Hadoop發行版——CDH(Cloudera’s Distribution including Apache Hadoop)平臺,完全由開放原始碼軟體組成。
(12)2009年7月 ,MapReduce 和 Hadoop Distributed File System (HDFS) 成為Hadoop專案的獨立子專案。
(13)2009年10月,首屆Hadoop World大會在紐約召開。
(14)2011年1月,ZooKeeper 脫離Hadoop,成為Apache頂級專案。
(15)2011年7月,Yahoo!和矽谷風險投資公司 Benchmark Capital建立了Hortonworks 公司,旨在讓Hadoop更加可靠,並讓企業使用者更容易安裝、管理和使用Hadoop。
(16)2012年3月,企業必須的重要功能HDFS NameNode HA被加入Hadoop主版本。
(17)2012年8月,另外一個重要的企業適用功能YARN成為Hadoop子專案。
(18)2014年2月,Spark逐漸代替MapReduce成為Hadoop的預設執行引擎,併成為Apache基金會頂級專案。
2.1.2 Hadoop 核心元件
Hadoop 包含以下模組:
- Hadoop Common:常見實用工具,用來支援其他 Hadoop 模組。
- Hadoop Distributed File System(HDFS):分散式檔案系統,它提供對應用程式資料的高吞吐量訪問。
- Hadoop YARN:一個作業排程和叢集資源管理框架。
- Hadoop MapReduce:基於 YARN 的大型資料集的並行處理系統。
其他與 Apache Hadoop 的相關專案包括:
- Ambari:一個基於Web 的工具,用於配置、管理和監控的 Apache Hadoop 叢集,其中包括支援 Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig 和 Sqoop。Ambari 還提供了儀表盤檢視叢集的健康,如熱圖,並能夠以使用者友好的方式來檢視的 MapReduce、Pig 和 Hive 應用,方便診斷其效能。
- HBase:一個可擴充套件的分散式資料庫,支援結構化資料的大表儲存。
- Hive:資料倉庫基礎設施,提供資料彙總以及特定的查詢。
- Mahout:一種可擴充套件的機器學習和資料探勘庫。
- Pig:一個高層次的資料流平行計算語言和執行框架。
- Spark:Hadoop 資料的快速和通用計算引擎。Spark 提供了簡單和強大的程式設計模型用以支援廣泛的應用,其中包括 ETL、機器學習、流處理和圖形計算。
- ZooKeeper:一個高效能的分散式應用程式協調服務。
2.1.3 Hadoop三大發行版
(1) Apache Hadoop
Apache Hadoop最原始版本,所有其他發行版均基於該發行版實現的。
官網地址http://hadoop.apache.org/,Logo如下
- 0.23.x :非穩定版
- 2.x :最新版是2.8.0,建議使用2.7.3穩定版。
3.0:已發行多個測試版,正式穩定版尚未釋出
(2)CDH
CDH(Cloudera’s Distribution for Hadoop)是Cloudera 公司的的Hadoop 發行版。
官方是https://www.cloudera.com/,Logo如下。
包含CDH4 和CDH5 兩個版本
CDH4 ;基於Apache Hadoop 0.23.0 版本開發
CDH5 :基於Apache Hadoop 2.2.0 版本開發
(3)HDP
HDP(The Hortonworks Data Platform)是Hortonworks 公司的發行版。
官網地址是https://hortonworks.com/,Logo如下。
(4) 發行版選擇
- 作為學習,建議選擇Apache Hadoop最新的穩定版;
- 作為工作(生產環境),建議選擇CDH或HDP穩定版。
(5) 不同發行版相容性
架構、部署和使用方法一致,不同之處僅在若干內部實現。
第2章 Hadoop快速入門
2.1 Hadoop簡介
2.1.1 Hadoop編年史
(1)2002年10月,Doug Cutting和Mike Cafarella建立了開源網頁爬蟲專案Nutch。
(2)2003 年 Google 發表了一篇技術學術論文關於 Google 檔案系統(GFS)。GFS 也就是 Google File System,是 Google 公司為了儲存海量搜尋資料而設計的專用檔案系統。
(3)2004年7月,Doug Cutting和Mike Cafarella在Nutch中實現了類似GFS的功能,即後來HDFS的前身。
(4)2004年 Google 又發表了一篇技術學術論文,向全世界介紹了 MapReduce。2005年 Doug Cutting 又基於 MapReduce,在 Nutch 搜尋引擎實現了該功能。
(5)2005年2月,Mike Cafarella在Nutch中實現了MapReduce的最初版本。
(6)2006年1月,Doug Cutting加入Yahoo!(雅虎)。Doug Cutting 將 NDFS 和MapReduce 升級命名為 Hadoop,Hadoop正式誕生!Yahoo! 開建了一個獨立的團隊給 Goug Cutting 專門研究發展 Hadoop。
(7)2006年2月,Apache Hadoop專案正式啟動以支援MapReduce和HDFS的獨立發展。
(8)2006年11月,Google發表了Bigtable論文,這最終激發了HBase的建立。
(9)2007年,百度、中國移動開始使用使用Hadoop技術。
(9)2008年1月,Hadoop 成為了 Apache 頂級專案。之後 Hadoop 被成功的應用在了其他公司,其中包括 Last.fm、Facebook、《紐約時報》等。
(10)2008年6月,Hadoop的第一個SQL框架——Hive成為了Hadoop的子專案。
(11)2009 年3月,Cloudera推出世界上首個Hadoop發行版——CDH(Cloudera’s Distribution including Apache Hadoop)平臺,完全由開放原始碼軟體組成。
(12)2009年7月 ,MapReduce 和 Hadoop Distributed File System (HDFS) 成為Hadoop專案的獨立子專案。
(13)2009年10月,首屆Hadoop World大會在紐約召開。
(14)2011年1月,ZooKeeper 脫離Hadoop,成為Apache頂級專案。
(15)2011年7月,Yahoo!和矽谷風險投資公司 Benchmark Capital建立了Hortonworks 公司,旨在讓Hadoop更加可靠,並讓企業使用者更容易安裝、管理和使用Hadoop。
(16)2012年3月,企業必須的重要功能HDFS NameNode HA被加入Hadoop主版本。
(17)2012年8月,另外一個重要的企業適用功能YARN成為Hadoop子專案。
(18)2014年2月,Spark逐漸代替MapReduce成為Hadoop的預設執行引擎,併成為Apache基金會頂級專案。
2.1.2 Hadoop 核心元件
Hadoop 包含以下模組:
- Hadoop Common:常見實用工具,用來支援其他 Hadoop 模組。
- Hadoop Distributed File System(HDFS):分散式檔案系統,它提供對應用程式資料的高吞吐量訪問。
- Hadoop YARN:一個作業排程和叢集資源管理框架。
- Hadoop MapReduce:基於 YARN 的大型資料集的並行處理系統。
其他與 Apache Hadoop 的相關專案包括:
- Ambari:一個基於Web 的工具,用於配置、管理和監控的 Apache Hadoop 叢集,其中包括支援 Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig 和 Sqoop。Ambari 還提供了儀表盤檢視叢集的健康,如熱圖,並能夠以使用者友好的方式來檢視的 MapReduce、Pig 和 Hive 應用,方便診斷其效能。
- HBase:一個可擴充套件的分散式資料庫,支援結構化資料的大表儲存。
- Hive:資料倉庫基礎設施,提供資料彙總以及特定的查詢。
- Mahout:一種可擴充套件的機器學習和資料探勘庫。
- Pig:一個高層次的資料流平行計算語言和執行框架。
- Spark:Hadoop 資料的快速和通用計算引擎。Spark 提供了簡單和強大的程式設計模型用以支援廣泛的應用,其中包括 ETL、機器學習、流處理和圖形計算。
- ZooKeeper:一個高效能的分散式應用程式協調服務。
2.1.3 Hadoop三大發行版
(1) Apache Hadoop
Apache Hadoop最原始版本,所有其他發行版均基於該發行版實現的。
官網地址http://hadoop.apache.org/,Logo如下
- 0.23.x :非穩定版
- 2.x :最新版是2.8.0,建議使用2.7.3穩定版。
3.0:已發行多個測試版,正式穩定版尚未釋出
(2)CDH
CDH(Cloudera’s Distribution for Hadoop)是Cloudera 公司的的Hadoop 發行版。
官方是https://www.cloudera.com/,Logo如下。
包含CDH4 和CDH5 兩個版本
CDH4 ;基於Apache Hadoop 0.23.0 版本開發
CDH5 :基於Apache Hadoop 2.2.0 版本開發
(3)HDP
HDP(The Hortonworks Data Platform)是Hortonworks 公司的發行版。
官網地址是https://hortonworks.com/,Logo如下。
(4) 發行版選擇
- 作為學習,建議選擇Apache Hadoop最新的穩定版;
- 作為工作(生產環境),建議選擇CDH或HDP穩定版。
(5) 不同發行版相容性
架構、部署和使用方法一致,不同之處僅在若干內部實現。