Hadoop學習筆記--發展歷程&版本
1.1. Hadoop的發展歷程
1. 這一切是如何開始的—Web上龐大的資料!
2. 使用Nutch抓取Web資料
3. 要儲存Web上龐大的資料——HDFS應運而生
4. 如何使用這些龐大的資料?
5. 採用Java或任何的流/管道語言構建MapReduce框架用於編碼並進行分析
6. 如何獲取Web日誌,點選流,Apache日誌,伺服器日誌等非結構化資料——fuse,webdav, chukwa, flume, Scribe
7. Hiho和sqoop將資料載入到HDFS中,關係型資料庫也能夠加入到Hadoop隊伍中
8. MapReduce程式設計需要的高階介面——Pig, Hive, Jaql
9. 具有先進的UI報表功能的BI工具- Intellicus
10. Map-Reduce處理過程使用的工作流工具及高階語言
11. 監控、管理hadoop,執行jobs/hive,檢視HDFS的高階檢視—Hue, karmasphere, eclipse plugin, cacti, ganglia
12. 支援框架—Avro (進行序列化), Zookeeper (用於協同)
13. 更多高階介面——Mahout, Elastic map Reduce
14. 同樣可以進行OLTP——Hbase
1.2. Hadoop 版本
Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他專案公共內容,從0.21開始HDFS和MapReduce被分離為獨立的子專案,其餘內容為Hadoop Common
HDFS:Hadoop分散式檔案系統(Distributed File System)-HDFS(Hadoop Distributed File System)
MapReduce:平行計算框架,0.20前使用org.apache.hadoop.mapred舊介面,0.20版本開始引入org.apache.hadoop.mapreduce的新API
The project includes these modules:
· Hadoop Common: The common utilities that support the other Hadoop modules.
· Hadoop Distributed File System (HDFS?): A distributed file system that provides high-throughput access to application data.
· Hadoop YARN: A framework for job scheduling and cluster resource management.
· Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
由於Hadoop版本混亂多變,因此,Hadoop的版本選擇問題一直令很多初級使用者苦惱。本文總結了Apache Hadoop和Cloudera Hadoop的版本衍化過程,並給出了選擇Hadoop版本的一些建議。
1.2.1. Apache Hadoop1.1 Apache版本衍化
截至目前(2012年12月23日),Apache Hadoop版本分為兩代,我們將第一代Hadoop稱為Hadoop 1.0,第二代Hadoop稱為Hadoop 2.0。第一代Hadoop包含三個大版本,分別是0.20.x,0.21.x和0.22.x,其中,0.20.x最後演化成1.0.x,變成了穩定版,而0.21.x和0.22.x則NameNode HA等新的重大特性。第二代Hadoop包含兩個版本,分別是0.23.x和2.x,它們完全不同於Hadoop 1.0,是一套全新的架構,均包含HDFS Federation和YARN兩個系統,相比於0.23.x,2.x增加了NameNode HA和Wire-compatibility兩個重大特性。
apache hadoop官方給出的版本說明是:
1.0.X - current stable version, 1.0 release
1.1.X - current beta version, 1.1 release
2.X.X - current alpha version
0.23.X - simmilar to 2.X.X but missing NN HA.
0.22.X - does not include security
0.20.203.X - old legacy stable version
0.20.X - old legacy version
經過上面的大體解釋,大家可能明白了Hadoop以重大特性區分各個版本的,總結起來,用於區分Hadoop版本的特性有以下幾個:
(1)Append 支援檔案追加功能,如果想使用HBase,需要這個特性。
(2)RAID 在保證資料可靠的前提下,通過引入校驗碼較少資料塊數目。詳細連結:
https://issues.apache.org/jira/browse/HDFS/component/12313080
(3)Symlink 支援HDFS檔案連結,具體可參考: https://issues.apache.org/jira/browse/HDFS-245
(4)Security Hadoop安全,具體可參考:https://issues.apache.org/jira/browse/HADOOP-4487
(5) NameNode HA 具體可參考:https://issues.apache.org/jira/browse/HDFS-1064
(6) HDFS Federation和YARN
需要注意的是,Hadoop 2.0主要由Yahoo獨立出來的hortonworks公司主持開發。
1.2 Apache版本下載
(1) 各版本說明:http://hadoop.apache.org/releases.html。
(2) 下載穩定版:找到一個映象,下載stable資料夾下的版本。
(3) Hadoop最全版本:http://svn.apache.org/repos/asf/hadoop/common/branches/,可直接導到eclipse中。
1.2.2. Cloudera Hadoop2.1 CDH版本衍化
Apache當前的版本管理是比較混亂的,各種版本層出不窮,讓很多初學者不知所措,相比之下,Cloudera公司的Hadoop版本管理的要很多。
我們知道,Hadoop遵從Apache開源協議,使用者可以免費地任意使用和修改Hadoop,也正因此,市面上出現了很多Hadoop版本,其中比較出名的一是Cloudera公司的發行版,我們將該版本稱為CDH(Cloudera Distribution Hadoop)。截至目前為止,CDH共有4個版本,其中,前兩個已經不再更新,最近的兩個,分別是CDH3(在Apache Hadoop 0.20.2版本基礎上演化而來的)和CDH4在Apache Hadoop 2.0.0版本基礎上演化而來的),分別對應Apache的Hadoop 1.0和Hadoop 2.0,它們每隔一段時間便會更新一次。
Cloudera以patch level劃分小版本,比如patch level為923.142表示在原生態Apache Hadoop 0.20.2基礎上新增了1065個patch(這些patch是各個公司或者個人貢獻的,在Hadoop jira上均有記錄),其中923個是最後一個beta版本新增的patch,而142個是穩定版發行後新新增的patch。由此可見,patch level越高,功能越完備且解決的bug越多。
Cloudera版本層次更加清晰,且它提供了適用於各種作業系統的Hadoop安裝包,可直接使用apt-get或者yum命令進行安裝,更加省事。
2.2 CDH版本下載
(1) 版本含義介紹:
https://ccp.cloudera.com/display/DOC/CDH+Version+and+Packaging+Information
(2)各版本特性檢視:
https://ccp.cloudera.com/display/DOC/CDH+Packaging+Information+for+Previous+Releases
(3)各版本下載:
CDH3:http://archive.cloudera.com/cdh/3/
CDH4:http://archive.cloudera.com/cdh4/cdh/4/
注意,Hadoop壓縮包在這兩個連結中的最上層目錄中,不在某個資料夾裡,很多人進到連結還找不到安裝包!
3. 如何選擇Hadoop版本
當前Hadoop版本比較混亂,讓很多使用者不知所措。實際上,當前Hadoop只有兩個版本:Hadoop 1.0和Hadoop 2.0,其中,Hadoop 1.0由一個分散式檔案系統HDFS和一個離線計算框架MapReduce組成,而Hadoop 2.0則包含一個支援NameNode橫向擴充套件的HDFS,一個資源管理系統YARN和一個執行在YARN上的離線計算框架MapReduce。相比於Hadoop 1.0,Hadoop 2.0功能更加強大,且具有更好的擴充套件性、效能,並支援多種計算框架。
當我們決定是否採用某個軟體用於開源環境時,通常需要考慮以下幾個因素:
(1)是否為開源軟體,即是否免費。
(2) 是否有穩定版,這個一般軟體官方網站會給出說明。
(3) 是否經實踐驗證,這個可通過檢查是否有一些大點的公司已經在生產環境中使用知道。
(4) 是否有強大的社群支援,當出現一個問題時,能夠通過社群、論壇等網路資源快速獲取解決方法。
考慮到以上幾個因素,我們分析一下開源軟體Hadoop。對於Hadoop 2.0而言,目前尚不穩定,無法用於生產環境,因此,如果當前你正準備使用Hadoop,那麼只能從Hadoop 1.0中選擇一個版本,而目截至目前(2012年12月23日),Apache和Cloudera最新的穩定版分別是Hadoop 1.0.4和CDH3U4,因此,你可以從中任選一個使用。
1.2.3. 參考:常見的下載hadoop不同版本的地址:
http://archive.apache.org/dist/hadoop/core/
http://archive.cloudera.com/cdh/3/
http://archive.cloudera.com/cdh4/cdh/4/
另外附註一個 hadoop各商業發行版的比較:
http://www.xiaohui.org/archives/795.html
http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-terms-explained/
http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-1102512/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深度學習發展歷程深度學習
- HTTP版本發展歷程HTTP
- 以太坊學習筆記————4、以太坊發展歷史回顧筆記
- hadoop 學習筆記Hadoop筆記
- Hadoop學習筆記—YarnHadoop筆記Yarn
- Hadoop學習筆記—HDFSHadoop筆記
- Hadoop學習筆記——————1、Hadoop概述Hadoop筆記
- HTTP - 發展歷程HTTP
- hadoop學習筆記(十)——hadoop + hbase + zookeeperHadoop筆記
- 記憶體資料庫發展歷程記憶體資料庫
- Hadoop學習筆記—17.Hive框架學習Hadoop筆記Hive框架
- Hadoop2.x學習筆記Hadoop筆記
- hadoop1.X學習筆記Hadoop筆記
- Hadoop學習筆記 - Sort / TeraSort / TestDFSIOHadoop筆記
- Hadoop學習筆記(一)——RPCHadoop筆記RPC
- gevent 學習筆記 —— 協程筆記
- Sqlite學習筆記之Sqlite歷史SQLite筆記
- node學習歷程
- Java 學習歷程Java
- 學習GCD歷程GC
- 大資料之 Hadoop學習筆記大資料Hadoop筆記
- hadoop 偽分散式模式學習筆記Hadoop分散式模式筆記
- hadoop學習筆記——第一個程式Hadoop筆記
- javascript模組化發展歷程JavaScript
- 前端模組化發展歷程 (-)前端
- 達內課程學習筆記筆記
- 一文帶你看遍深度學習發展的成就歷程(一)深度學習
- MySQL版本發展歷史介紹MySql
- Hadoop學習筆記之一 : HDFS原理二Hadoop筆記
- Hadoop學習筆記之一 : HDFS原理一Hadoop筆記
- Flutter 的學習歷程Flutter
- Go學習歷程(一)Go
- 非同步JavaScript的發展歷程非同步JavaScript
- unity學習筆記-C#協程Unity筆記C#
- Andrew ng 深度學習課程筆記深度學習筆記
- Android發展以及歷史版本號Android
- lfs(systemv版本)學習筆記-第1頁筆記
- 檢視提交歷史 —— Git 學習筆記 11Git筆記