剛開始學習Hadoop時就曾經一直抱怨Hadoop的安裝部署為什么這么麻煩,對於一個新手需要捯飭一天才能把分布式環境安裝配置好。而對於一個自學Hadoop而周圍又沒人交流的菜鳥來說,我對Hadoop的理解一直停留在很膚淺的層面,能應用,但對內部的原理知之甚少。最近和一個做這方面的朋友聊天,他問我你學習Hadoop是用的什么版本搭建環境,我說Hadoop版本那么多我也記不太清了,他只是笑笑就沒再多問。
回來后我又仔細想了想他問的話,不會是問的別的意思吧,難道Hadoop不是只分1.0.x和2.x這些雜七雜八的版本?上網一搜才感覺這下丟人丟大發了,原來Hadoop除了Apache這個版本,還有這么多第三方的版本,而且已經很好地解決了Hadoop部署管理復雜的問題。所以在此記錄一下,也給新人提個醒。
目前Hadoop的發行版除了Apache的開源版本之外,還有華為發行版、Intel發行版、Cloudera發行版(CDH)、Hortonworks發行版(HDP)、MapR等,所有這些發行版均是基於Apache Hadoop衍生出來的,因為Apache Hadoop的開源協議允許任何人對其進行修改並作為開源或者商業產品發布。
國內大多數公司發行版是收費的,比如Intel發行版、華為發行版等。不收費的Hadoop版本主要有國外的四個,分別是Apache基金會hadoop、Cloudera版本(CDH)、Hortonworks版本(HDP)、MapR版本。
Apache社區版本優缺點
優點:
- 完全開源免費
- 社區活躍
- 文檔、資料詳實
缺點:
- 復雜的版本管理。版本管理比較混亂,各種版本層出不窮,讓使用者不知所措。
- 復雜的集群部署、安裝、配置。通常按照集群需要編寫大量的配置文件,分發到每一台節點上,容易出錯,效率低下。
- 復雜的集群運維。對集群的監控,運維,需要安裝第三方的其他軟件,如ganglia,nagois等,運維難度較大。
- 復雜的生態環境。在Hadoop生態圈中,組件的選擇、使用,比如Hive,Mahout,Sqoop,Flume,Spark,Oozie等等,需要大量考慮兼容性的問題,版本是否兼容,組件是否有沖突,編譯是否能通過等。經常會浪費大量的時間去編譯組件,解決版本沖突問題。
第三方發行版本(如CDH,HDP,MapR等)優缺點
優點:
- 基於Apache協議,100%開源。
- 版本管理清晰。比如Cloudera,CDH1,CDH2,CDH3,CDH4,CDH5等,后面加上補丁版本,如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的CDH。大家也可以詳細對比優缺點,根據自己的需要做選擇。