1. 程式人生 > >Apache Hadoop與第三方Hadoop-CDH,HDP,MapR的分析與比較

Apache Hadoop與第三方Hadoop-CDH,HDP,MapR的分析與比較

、Hadoop版本綜述

目前Hadoop發行版非常多,有華為發行版、Intel發行版、Cloudera發行版(CDH)等,所有這些發行版均是基於Apache Hadoop衍生出來的,之所以有這麼多的版本,完全是由Apache Hadoop的開源協議決定的:任何人可以對其進行修改,並作為開源或商業產品釋出/銷售。(http://www.apache.org/licenses/LICENSE-2.0)。

國內絕大多數公司發行版是收費的,比如Intel發行版、華為發行版等,儘管這些發行版增加了很多開源版本沒有的新feature,但絕大多數公司選擇Hadoop版本時會將把是否收費作為重要指標,不收費的Hadoop版本主要有三個(均是國外廠商),分別是:

        Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,簡稱“CDH”)、

 Apache基金會hadoop

 Hortonworks版本(Hortonworks Data Platform,簡稱“HDP”)--------按順序代表了,在國內的使用率,CDH和HDP雖然是收費版本,但是他們是開源的,只是收取服務費用。

對於國內而言,絕大多數選擇CDH版本,主要理由如下:

(1) CDH對Hadoop版本的劃分非常清晰,只有兩個系列的版本(現在已經更新到CDH5.20了,基於hadoop2.x),分別是cdh3和cdh4,分別對應第一代Hadoop(Hadoop 1.0)和第二代Hadoop(Hadoop 2.0),相比而言,Apache版本則混亂得多; (2) CDH文件清晰,很多采用Apache版本的使用者都會閱讀cdh提供的文件,包括安裝文件、升級文件等。

    CDH與Apache版本的對應:     cdh3版本是基於apache  hadoop  0.20.2     cdh3u6對應到apache hadoop最新版本(Hadoop 1.x)     cdh4對應apache hadoop 2.x

HDP版本是比較新的版本,目前與apache基本同步,因為Hortonworks內部大部分員工都是apache程式碼貢獻者,尤其是Hadoop 2.0的貢獻者。

二、社群版本與第三方發行版本的比較

1.Apache社群版本

優點:     完全開源免費。     社群活躍     文件、資料詳實  缺點: ----複雜的版本管理。版本管理比較混亂的,各種版本層出不窮,讓很多使用者不知所措。 ----複雜的叢集部署、安裝、配置。通常按照叢集需要編寫大量的配置檔案,分發到每一臺節點上,容易出錯,效率低下。 ----複雜的叢集運維。對叢集的監控,運維,需要安裝第三方的其他軟體,如ganglia,nagois等,運維難度較大。 ----複雜的生態環境。在Hadoop生態圈中,元件的選擇、使用,比如Hive,Mahout,Sqoop,Flume,Spark,Oozie等等,需要大量考慮相容性的問題,版本是否相容,元件是否有衝突,編譯是否能通過等。經常會浪費大量的時間去編譯元件,解決版本衝突問題。  

2.第三方發行版本(如CDH,HDP,MapR等)

優點: ----基於Apache協議,100%開源。 ----版本管理清晰。比如Cloudera,CDH1,CDH2,CDH3,CDH4等,後面加上補丁版本,如CDH4.1.0 patch level 923.142,表示在原生態Apache Hadoop 0.20.2基礎上添加了1065個patch。 ----比Apache Hadoop在相容性、安全性、穩定性上有增強。第三方發行版通常都經過了大量的測試驗證,有眾多部署例項,大量的執行到各種生產環境。 ----版本更新快。通常情況,比如CDH每個季度會有一個update,每一年會有一個release。 ----基於穩定版本Apache Hadoop,並應用了最新Bug修復或Feature的patch ----提供了部署、安裝、配置工具,大大提高了叢集部署的效率,可以在幾個小時內部署好叢集。 ----運維簡單。提供了管理、監控、診斷、配置修改的工具,管理配置方便,定位問題快速、準確,使運維工作簡單,有效。缺點:

----涉及到廠商鎖定的問題。(可以通過技術解決)

三、第三方發行版本的比較

Cloudera:最成型的發行版本,擁有最多的部署案例。提供強大的部署、管理和監控工具。Cloudera開發並貢獻了可實時處理大資料的Impala專案。

Hortonworks:不擁有任何私有(非開源)修改地使用了100%開源Apache Hadoop的唯一提供商。Hortonworks是第一家使用了Apache HCatalog的元資料服務特性的提供商。並且,它們的Stinger開創性地極大地優化了Hive專案。Hortonworks為入門提供了一個非常好的,易於使用的沙盒。Hortonworks開發了很多增強特性並提交至核心主幹,這使得Apache Hadoop能夠在包括Windows Server和Windows Azure在內的Microsft Windows平臺上本地執行。

點選檢視原圖

MapR:與競爭者相比,它使用了一些不同的概念,特別是為了獲取更好的效能和易用性而支援本地Unix檔案系統而不是HDFS(使用非開源的元件)。可以使用本地Unix命令來代替Hadoop命令。除此之外,MapR還憑藉諸如快照、映象或有狀態的故障恢復之類的高可用性特性來與其他競爭者相區別。該公司也領導著Apache Drill專案,本專案是Google的Dremel的開源專案的重新實現,目的是在Hadoop資料上執行類似SQL的查詢以提供實時處理。

四、版本選擇 當我們決定是否採用某個軟體用於開源環境時,通常需要考慮以下幾個因素: (1)是否為開源軟體,即是否免費。 (2) 是否有穩定版,這個一般軟體官方網站會給出說明。 (3) 是否經實踐驗證,這個可通過檢查是否有一些大點的公司已經在生產環境中使用知道。 (4) 是否有強大的社群支援,當出現一個問題時,能夠通過社群、論壇等網路資源快速獲取解決方法。