hadoop最新穩定版本使用建議


Apache Hadoop
Apache版本衍化比較快,我給大家介紹一下過程
ApacheHadoop版本分為兩代,我們將第一代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增加了NameNodeHA和Wire-compatibility兩個重大特性。經過上面的大體解釋,大家可能明白了Hadoop以重大特性區分各個版本的,總結起來,用於區分Hadoop版本的特性有以下幾個:
(1)Append 支持文件追加功能,如果想使用HBase,需要這個特性。
(2)RAID 在保證數據可靠的前提下,通過引入校驗碼較少數據塊數目.
(3)Symlink支持HDFS文件鏈接
(4)Security Hadoop安全。
需要注意的是,Hadoop 2.0主要由Yahoo獨立出來的hortonworks公司主持開發。
2013年10月,Hadoop 2.0發布。關鍵特性包括:
a) YARN
YARN是“YetAnother Resource Negotiator”的簡稱,它是Hadoop 2.0引入的一個全新的通用資源管理系統,可在其之上運行各種應用程序和框架,比如MapReduce、Tez、Storm等,它的引入使得各種應用運行在一個集群中成為可能。YARN是在MRv1基礎上衍化而來的,是MapReduce發展到一定程度的必然產物,它的出現使得Hadoop計算類應用進入平台化時代,我的博客中包含大量介紹YARN的文章,有興趣的讀者可閱讀: http://dongxicheng.org/category/mapreduce-nextgen/
b) HDFS單點故障得以解決
Hadoop2.2.0同時解決了NameNode單點故障問題和內存受限問題,其中,單點故障是通過主備NameNode切換實現的,這是一種古老的解決服務單點故障的方案,主備NameNode之間通過一個共享存儲同步元數據信息,因此共享存儲系統的選擇稱為關鍵,而Hadoop則提供了NFS、QJM和Bookeeper三種可選的共享存儲系統,具體可閱讀我的這篇文章:Hadoop 2.0單點故障問題方案總結。
c)HDFS Federation
前面提到HDFS的NameNode存在內存受限問題,該問題也在2.2.0版本中得到了解決。這是通過HDFS Federation實現的,它允許一個HDFS集群中存在多個NameNode,每個NameNode分管一部分目錄,而不同NameNode之間彼此獨立,共享所有DataNode的存儲資源,注意,NameNode Federation中的每個NameNode仍存在單點問題,需為每個NameNode提供一個backup以解決單點故障問題。
d)HDFS快照
HDFS快照是指HDFS文件系統(或者子系統)在某一時刻的只讀鏡像,它的出現使得管理員可定時為重要文件或目錄做快照,以防止數據誤刪、丟失等。具體可閱讀:Snapshots for HDFS(使用說明),Support for RW/ROsnapshots in HDFS。
通過NFSv3訪問HDFS
NFS允許用戶像訪問本地文件系統一樣訪問遠程文件系統,而將NFS引入HDFS后,用戶可像讀寫本地文件一樣讀寫HDFS上的文件,大大簡化了HDFS使用,這是通過引入一個NFS gateway服務實現的,該服務能將NFS協議轉換為HDFS訪問協議,具體如下圖所示。有興趣的讀者可閱讀:Support NFSv3interface to HDFS,以及相關設計文檔:HDFS NFS Gateway。
e)支持Windows操作系統
在2.2.0版本之前,Hadoop僅支持Linux操作系統,而Windows僅作為實驗平台使用。從2.2.0開始,Hadoop開始支持Windows操作系統,具體可閱讀我之前寫的一篇文章:Hadoop For Windows。
f)兼容1.x上運行的MapReduce應用程序與Hadoop生態系統其他系統進行了充分的集成測試
除了HDFS、MapReduce和YARN這三個核心系統外,Hadoop生態系統還包括Hbase、Hive、Pig等系統,這些系統底層依賴於Hadoop內核,而相比於Hadoop 1.0,Hadoop 2.0的最大變化出現在內核(HDFS、MapReduce和YARN),但與生態系統中其他系統進行集成測試是必需的。
除了以上特性外,Apache官方還給出了兩個特殊說明:
(1)HDFS變化:HDFS的symlinks(類似於Linux中的軟連接)被將移到了2.3.0版本中
(2)YARN/MapReduce注意事項:管理員在NodeManager上設置ShuffleHandler service時,要采用“mapreduce_shuffle”,而非之前的“mapreduce.shuffle”作為屬性值
新版本不僅增強了核心平台的大量功能,同時還修復了大量bug。新版本對HDFS做了兩個非常重要的增強:(1)、支持異構的存儲層次;(2)、通過數據節點為存儲在HDFS中的數據提供了內存緩存功能。
借助於HDFS對異構存儲層次的支持,我們將能夠在同一個Hadoop集群上使用不同的存儲類型。此外我們還可以使用不同的存儲媒介——例如商業磁盤、企業級磁盤、SSD或者內存等——更好地權衡成本和收益。如果你想更詳細地了解與該增強相關的信息,那么可以訪問這里。類似地,在新版本中我們還能使用Hadoop集群中的可用內存集中地緩存並管理數據節點內存中的數據集。MapReduce、Hive、Pig等類似的應用程序將能夠申請內存進行緩存,然后直接從數據節點的地址空間中讀取內容,通過完全避免磁盤操作極大地提高掃描效率。Hive現在正在為ORC文件實現一個非常有效的零復制讀取路徑,該功能就使用了這項新技術。
在YARN方面,令我們非常興奮的事情是資源管理器自動故障轉移功能已經進入尾聲,雖然在2.3.0這個版本中該功能還沒有被發布,但是極有可能會包含在Hadoop-2.4中。此外,2.3.0版本還對YARN做了一些關鍵的運維方面的增強,例如更好的日志、錯誤處理和診斷等。
MapReduce的一個關鍵增強MAPREDUCE-4421。借助於該功能我們已經不再需要在每一台機器上安裝MapReduce二進制程序,僅僅需要通過YARN分布式緩存將一個MapReduce包復制到HDFS中就可以了。當然,新版本還包含大量的bug修復以及其他方面的增強。例如:
(1)YarnClientImpl類中的異步輪詢操作引入了超時;
(2)修復了RMFatalEventDispatcher沒有記錄事件原因的問題;
(3)HA配置不會影響節點管理器的RPC地址;
(4)RM Web UI和REST API統一使用YarnApplicationState;
(5)在RpcResponseHeader中包含RPC錯誤信息,而不是將其分開發送;
(6)向jetty/httpserver中添加了請求日志;
(7)修復了將dfs.checksum.type定義為NULL之后寫文件和hflush會拋出java.lang.ArrayIndexOutOfBoundsException的問題。
2014年4月,Hadoop 2.4.0發布。關鍵特性包括:
(1)HDFS支持訪問控制列表(ACLs,Access Control Lists);
(2)原生支持HDFS滾動升級;
(3)HDFS FSImage用到了 protocol-buffers,從而可以平滑地升級;
(4)HDFS完全支持HTTPS;
(5)YARN ResourceManager支持自動故障轉移,解決了YARNResourceManager的單點故障;
(6)對YARN的Application History Server和 pplication Timeline Server上的新應用加強了支持;
(7)通過搶占使得YARN Capacity Scheduler支持強SLAs協議;
安全對於Hadoop來說至關重要,所以在Hadoop 2.4.0版本中對HDFS的所有訪問(包括WebHDFS, HsFTP甚至是web-interfaces)都支持了HTTPS。在Hadoop 2.4.0解決了ResourceManager的單點故障。這樣會在集群中存在兩個ResourceManager,其中一個處於Active;另一個處於  standby。當Active的出現故障,這樣Hadoop可以自動平滑地切換到另外一個ResourceManager,這個新的ResourceManager將會自動的重啟那些提交的applications。在下一階段,Hadoop將會增加一個熱standby(add a hot standby),這個standby可以繼續從故障點運行的應用程序,以保存任何已經完成的工作。
2014年8月,Hadoop 2.5.0發布。關鍵特性包括:
1. Common
a) 使用HTTP代理服務器時認證改進。當通過代理服務器使用WebHDFS時這是非常有用的。
b) 增加了一個新的Hadoop指標監控sink,允許直接寫到Graphite。
c) Hadoop文件系統兼容相關的規范工作。
2. HDFS
a) 支持POSIX風格的擴展文件系統。更多細節查看Extended Attributes in HDFS文檔。
b) 支持離線image瀏覽,客戶端現在可以通過WebHDFS的API瀏覽一個fsimage。
c) NFS網關得到大量可支持性的改進和bug修復。Hadoop portmapper不在需要運行網關,網關現在可以拒絕沒有權限的端口的連接。
d)SecondaryNameNode, JournalNode, and DataNode 的web UI已經使用HTML5和JS美化。
3. YARN
a) YARN的RESTAPI現在支持寫/修改操作。用戶可以用REST API提交和殺死應用程序。
b) 時間線存儲到YARN,用來存儲一個應用通用的和特殊的信息,支持Kerberos認證。
c) 公平調度器支持動態分層用戶隊列,運行時,用戶隊列在任一指定的父隊列中被動態的創建。
2014年11月,Hadoop 2.6.0發布。(推薦使用)
是市場上企業應用最多,與其它發行版結合最好的版本,推薦大家用這個版本。
關鍵特性包括:
1. Common
Hadoop Key Management Server(KMS)是一個基於HadoopKeyProvider API編寫的密鑰管理服務器。他提供了一個client和一個server組件,client和server之間基於HTTP協議使用REST API通信。Client是一個KeyProvider的實現,使用KMS HTTP REST API與KMS交互。KMS和它的client有內置的安全機制,支持HTTP SPNEGO Kerberos認證和HTTPS安全傳輸。KMS是一個Java Web應用程序,運行在與Hadoop發行版綁定在一起的預先配置好的Tomcat服務器上。
2. Tracing
HDFS-5274增加了追蹤通過HDFS的請求的功能,此功能使用了開源的庫,HTrace。大家可以看一下HTrace,功能很強大,Cloudera開源出來的。
3. HDFS
a) TransparentEncryption,HDFS實現了一個透明的,端到端的加密方式。一旦配置了加密,從HDFS讀出數據解密和寫入數據加密的過程對用戶應用程序代碼帶來說都是透明的。加密過程是端到端的,這意味着數據只能在客戶端被加密解密。HDFS從來不存儲,也不訪問未加密的數據和數據加密密鑰。這樣滿足了加密過程的兩個典型的需求:at-rest encryption(靜態加密,也就是說,數據持久化在像硬盤這樣的媒介上),in-transit encryption(在途加密,例如,當數據在網絡中傳輸的時候)。
b) StorageSSD&& Memory。ArchivalStorage(檔案存儲器)是將計算能力與不斷增長的存儲能力分離。擁有高密度低成本的存儲但是計算能力較低的節點將變得可用,可以在集群中做冷存儲。增加更多的節點作為冷存儲可以提高集群的存儲能力,跟集群的計算能力無關。
4. MapReduce
這一部分主要是一些bug的修復和改進。增加了兩個新的新特,在2.5.2里已經有所描述了。這里在簡單看一下。
a) ResourceMangerRestart
b) 允許AM發送歷史事件信息到timeline server。
5. YARN
a) NodeManagerRestart:這個特性可以使NodeManager在不丟失運行在節點中的活動的container的情況下重新啟動。
b) DockerContainer Executor:DockerContainer Executor(DCE)允許YARN NodeManager在Docker container中啟動YARN container。用戶可以指定他們想用來運行YARN container的Docker的鏡像。這些container提供了一個可以自定義的軟件環境,用戶的代碼可以運行在其中,與NodeManager運行的環境隔離。這些運行用戶代碼的container可以包含應用程序需要的特定的庫,它們可以擁有與NodeManager不同版本的Perl,Python甚至是Java。事實上,這些container可以運行與NodeManager所在的OS不同版本的Linux。盡管YARNcontainer必須定義運行Job所需的所有的環境和庫,但是NodeManager中的所有的東西都不會共享。
Docer為YARN提供了一致和隔離兩種模式,一致模式下,所有的YARN container將擁有相同的軟件環境,在隔離模式下,不管物理機器安裝了什么都不干擾。
2015年7月,Hadoop 2.7.0發布。關鍵特性包括:
1. Common
支持WindowsAzure Storage,BLOB作為Hadoop中的文件系統。
Hadoop HDFS
a) 支持文件截斷(file truncate);
b) 支持每個存儲類型配額(Support for quotas per storage type);
c) 支持可變長度的塊文件
2. YARN
1、YARN安全模塊可插拔
a)YARN的本地化資源可以自動共享,全局緩存(測試版)
HadoopMapReduce
b)能夠限制運行的Map/Reduce作業的任務
c)為非常的大Job(有許多輸出文件)加快了FileOutputCommitter。
2. HDFS
a) 支持文件截斷(file truncate);
b) 支持每個存儲類型配額(Support for quotas per storage type);
c) 支持可變長度的塊文件
2. MAPREDUCE
a) 能夠限制運行的Map/Reduce作業的任務
b) 為非常的大Job(有許多輸出文件)加快了FileOutputCommitter。
2015年7月,Hadoop 2.7.1發布。關鍵特性包括:
本版本屬於穩定版本,是自Hadoop 2.6.0以來又一個穩定版,同時也是Hadoop 2.7.x版本線的第一個穩定版本,也是 2.7版本線的維護版本,變化不大,主要是修復了一些比較嚴重的Bug(其中修復了131個Bugs和patches)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM