由於Hadoop版本混亂多變,因此,Hadoop的版本選擇問題一直令很多初級用戶苦惱。本文總結了Apache Hadoop和Cloudera Hadoop的版本衍化過程,並給出了選擇Hadoop版本的一些建議。
1. Apache Hadoop
1.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兩個重大特性。
經過上面的大體解釋,大家可能明白了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中。
2. Cloudera Hadoop
2.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,因此,你可以從中任選一個使用。如今Hadoop 2.0已經發布了最新的穩定版2.2.0,推薦使用該版本,具體介紹可閱讀:“Hadoop 2.0穩定版本2.2.0新特性剖析”,升級方法可參考:“Hadoop升級方案(二):從Hadoop 1.0升級到2.0(1)”。
原創文章,轉載請注明: 轉載自董的博客
本文鏈接地址: http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/