自從2013年下半年開始,hadoop的版本開始了快速的更新換代,這和通信和互聯網行業(ICT)的發展是密切相關的。隨着移動網絡的和寬帶網絡的覆蓋以及數據傳輸速率的提升,線上的數據有了爆炸式的增長。這種趨勢特別體現在大型的電商平台如淘寶、京東、亞馬遜,海量數據的存儲和處理問題成為了熱門話題,在這種形勢下分布式的、雲化的解決方案應運而生,hadoop作為大型分布式存儲和處理的開源框架自然成為了行業里的熱點。以下是hadoop的官方簡介。
Apache Hadoop軟件庫是一個框架,允許使用簡單的編程模型跨計算機集群分布式處理大型數據集。它旨在從單個服務器擴展到數千台計算機,每台計算機都提供本地計算和存儲。庫本身不是依靠硬件來提供高可用性,而是設計用於檢測和處理應用程序層的故障,從而在計算機集群之上提供高可用性服務,每個計算機都可能容易出現故障。
該項目包括以下模塊:
- Hadoop Common:支持其他Hadoop模塊的常用實用程序。
- Hadoop分布式文件系統(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應用程序的功能,以及以用戶友好的方式診斷其性能特征的功能。
- Avro™:數據序列化系統。
- Cassandra™:可擴展的多主數據庫,沒有單點故障。
- Chukwa™:用於管理大型分布式系統的數據收集系統。
- HBase™:可擴展的分布式數據庫,支持大型表的結構化數據存儲。
- Hive™:一種數據倉庫基礎架構,提供數據匯總和即席查詢。
- Mahout™:可擴展的機器學習和數據挖掘庫。
- Pig™:用於並行計算的高級數據流語言和執行框架。
- Spark™:用於Hadoop數據的快速通用計算引擎。Spark提供了一種簡單而富有表現力的編程模型,支持廣泛的應用程序,包括ETL,機器學習,流處理和圖形計算。
- Tez™:基於Hadoop YARN構建的通用數據流編程框架,它提供了一個功能強大且靈活的引擎,可以執行任意DAG任務來處理批量和交互式用例的數據。Tez正在被Hadoop生態系統中的Hive™,Pig™和其他框架以及其他商業軟件(例如ETL工具)采用,以取代Hadoop™MapReduce作為底層執行引擎。
- ZooKeeper™:用於分布式應用程序的高性能協調服務。
順應時代的發展,為了跟上技術更新的節奏,許多數據分析和處理的中小型企業也想搭建一個hadoop生態圈,將其作為今后數據存儲和處理的平台的發展方向,因此需要先構建一個實驗測試環境,以便今后做系統轉移和處理業務的銜接類的工作。這一類企業的集群節點不需要太多,從幾台到十幾台的樣子。在當下行業里hadoop的應用已經成熟,hadoop有非常多的版本,就拿我的大學時代到現在來講,短短兩年學習的hadoop的版本和現在的相比已經有了比較多的改動,到企業中部署需要更加清晰的認識和學習新的技術。在這種情況下,如何去選擇hadoop和搭建集群?
通過在互聯網上廣泛的閱讀,我發現了一篇較為清晰的hadoop版本介紹,不過是只更新到2016年底的,后來發現其實不嫌麻煩也可以到hadoop官網上進行詳細的了解,hadoop的官網上有每個版本更新的詳細信息。
https://www.cnblogs.com/bigdataman/p/6116298.html 北漂程序猿的2.7及以前版本的介紹和推薦,他推薦的是2.6.x版本
而現在已經出來2.8.x、2.9.x和3.x版本,每個版本都新增了功能,但是我不確定是否能用的上,所以在新型和穩定上需要做出考慮。在這里可以大概了解到更新的信息,具體的可參考http://hadoop.apache.org/
2018年8月8日:3.1.1版本可用 這是Apache Hadoop 3.1系列的第一個穩定版本。它包含自3.1.0以來的435個錯誤修復,改進和增強功能 建議用戶閱讀自3.1.0以來的主要變化概述。有關自上一個3.1.0版本以來的435個錯誤修復,改進和其他增強功能的詳細信息,請查看發行說明和更新日志,詳細說明自3.1.0以來的更改。 2018年5月31日:2.7.7版本可用 這是Apache Hadoop 2.7的維護版本。它涉及CVE-2018-8009。 2018年5月31日:3.0.3版本可用 這是Apache Hadoop 3.0系列的下一個版本。它包含自3.0.2以來的249個錯誤修復,改進和其他增強功能。 鼓勵用戶閱讀自3.0.2以來的主要變化概述。對於自上次3.0.2版本的249 bug修復,改進和其它增強功能的詳細信息,請查看 發布說明安迪 的changelog細節,因為3.0.2的變化。 2018年5月15日:2.8.4版本可用 這是Apache Hadoop 2.8系列的下一個版本。它包含自2.8.3以來的77個錯誤修復,改進和增強功能。 建議用戶閱讀Apache Hadoop 2.8的主要功能和改進的主要更改概述。有關自2.8.3版本以來的77個修復,改進和其他增強功能的詳細信息,請查看 發行說明和 更改日志。 2018年5月3日:版本2.9.1可用 這是Apache Hadoop 2.9系列的下一個版本。它包含自2.9.0以來的208個錯誤修復,改進和增強功能。 建議用戶閱讀Apache Hadoop 2.9的主要功能和改進的主要更改概述。有關自2.9.0發行版以來的208個修復,改進和其他增強功能的詳細信息,請查看 發行說明和 更改日志。 2018年4月16日:2.7.6版本可用 這是Apache Hadoop 2.7系列的下一個版本。 有關自上一版本2.7.5以來的46個錯誤修復和優化的完整列表,請參閱 Hadoop 2.7.6發行說明。它特別使POSIX組支持LDAP組映射服務。 2018年4月6日:3.1.0版本可用 這是Apache Hadoop 3.1系列的第一個版本。它包含自3.0.0以來的768個錯誤修復,改進和增強功能 建議用戶閱讀自3.0.0以來的主要更改概述。有關自上一個3.0.0版本以來的768個錯誤修復,改進和其他增強功能的詳細信息,請查看發行說明和更新日志詳細說明自3.0.0以來的更改。 2018年3月25日:3.0.1版本可用 這是Apache Hadoop 3.0系列的下一個版本。它包含自3.0.0以來的49個錯誤修復,改進和增強功能。 請注意:3.0.0之后不推薦使用3.0.0,因為HDFS-12990將NameNode默認RPC端口更改回8020。 建議用戶閱讀自3.0.0以來的主要更改概述。有關自上一個3.0.0版本以來的49個錯誤修復,改進和其他增強功能的詳細信息,請查看發行說明和更新日志詳細說明自3.0.0以來的更改。 2017年12月13日:一般可用3.0.0版 在四個alpha版本和一個beta版本之后,通常可以使用3.0.0。3.0.0包含自3.0.0-beta1以來的302個錯誤修復,改進和其他增強功能。總共有6242個問題作為自2.7.0以來的3.0.0版本系列的一部分得到修復。 建議用戶閱讀3.0.0 中主要更改的概述。GA 發布說明和更新日志詳細說明了自3.0.0-beta1以來的更改。 2017年12月12日:發布2.8.3版 這是Apache Hadoop 2.8發布系列的下一個版本。它包含自2.8.2以來的79個錯誤修復,改進和其他增強功能。有關Apache Hadoop 2.8的主要功能和改進,請參閱: 主要更改概述。有關自上一個2.8.2版本以來的79個修復,改進和其他增強功能的詳細信息,請檢查: 發行說明和 更改日志 2017年11月17日:發布2.9.0版 這是2.9版本系列中的第一個GA版本。它包括30個新功能,500個子任務,407個改進,790個Bug修復自2.8.2以來的新修復問題。有關Apache Hadoop 2.8.2的主要功能和改進,請參閱: 主要更改概述。有關自上一個2.8.2版本以來的790個錯誤修復,改進和其他增強功能的詳細信息,請檢查: 發行說明和 更改日志 請注意:盡管此版本已經在相當大的集群上進行了測試,但生產用戶可以等待后續的點發布,其中包含進一步穩定和下游采用的修復。 2017年10月24日:發布2.8.2 這是2.8版本系列中的第一個GA版本。它包含自從2.8.1以來的315個錯誤修復,改進和其他增強功能。有關Apache Hadoop 2.8的主要功能和改進,請參閱: 主要更改概述。有關自上一個2.8.1版本以來的315修復,改進和其他增強功能的詳細信息,請檢查:發行說明和 更改日志 2017年3月22日:2.8.0版本可用 Apache Hadoop 2.8.0包含許多重要功能和增強功能。有關主要功能和改進,請參閱: 2.8.0 中主要更改的概述。有關自上一個2.7.0版本以來的2917修復,改進和新功能的詳細信息,請檢查: 發行說明和 更改日志 請注意,此版本尚未准備好用於生產。通過測試和下游采用來解決關鍵問題。生產用戶應該等待2.8.1 / 2.8.2版本。 2016年10月8日:2.6.5版本可用 2.6線的點數發布。 有關79個關鍵錯誤修復的列表以及自上一版本2.6.4以來, 請參閱 Hadoop 2.6.5發行說明。
2016年1月25日:2.7.2版(穩定版)可用 2.7線的點數發布。
有關自上一版本2.7.1以來的155個錯誤修復和補丁的列表,請參閱 Hadoop 2.7.2發行說明。
在經過了解,除了Hadoop的原生版本之外,還有許多其他版本的。這里有為清晰的介紹。
目前而言,不收費的Hadoop版本主要有三個(均是國外廠商),
分別是:Apache(最原始的版本,所有發行版均基於這個版本進行改進)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,簡稱CDH)、Hortonworks版本(Hortonworks Data Platform,簡稱“HDP”),
對於國內而言,絕大多數選擇CDH版本,CDH和Apache版本主要區別如下:
(1)CDH對Hadoop版本的划分非常清晰,只有兩個系列的版本,分別是cdh3和cdh4,分別對應第一代Hadoop(Hadoop 1.0)和第二代Hadoop(Hadoop 2.0),相比而言,Apache版本則混亂得多;比Apache hadoop在兼容性,安全性,穩定性上有增強。
(2)CDH3版本是基於Apache hadoop 0.20.2改進的,並融入了的patch,CDH4版本是基於Apache hadoop 2.X改進的,CDH總是並應用了Bug修復或者Feature的Patch,並比Apache hadoop同功能版本提早發布,更新速度比Apache官方快。
(3)安全 CDH支持Kerberos安全認證,apache hadoop則使用簡陋的用戶名匹配認證
(4)CDH文檔清晰,很多采用Apache版本的用戶都會閱讀CDH提供的文檔,包括安裝文檔、升級文檔等。
(5)CDH支持Yum/Apt包,Tar包,RPM包,Cloudera Manager四種方式安裝,Apache hadoop只支持Tar包安裝。
另外說明一下,CDH分為商業版和免費版,商業版另外提供了滾動升級的功能。還有一個完全開源免費的hadoop集群管理框架是Ambari,這里有Ambari功能的詳細介紹。https://blog.csdn.net/u012331758/article/details/78106714 , Ambari集群搭建手冊在這里https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/
以及在中國開源社區中,出現了商業化的DK免費版本和商用版本,說在性能和部署上都相對便捷,DKHadoop具體可了解的http://www.dksou.com/a/product/pro-11.html。
在hadoop的選擇問題上,經過和他人的探討以及中和在官網、博客、貼吧的意見,我認為推薦使用的原生版本有2.6.x、2.7.x和2.8.x的穩定版,集群管理有Ambari和CDH。在選用原生版本的時候需要考慮各個組件的版本是否匹配,而使用CDH和Ambari在集群部署上應該更為可靠和便捷,可以少走一些彎路。