一、背景介紹
生產環境中,hadoop的版本選擇是乙個公司架構之時,很重要的乙個考慮因素。這篇文章根據就談談現在主流的hadoop版本的比較。如果有不同意見,或者指正,希望大家能交流。
apache hadoop
:apache hadoop是一款支援資料密集型分布式應用並以apache 2.0許可協議發布的開源軟體框架。它支援在商品硬體構建的大型集群上執行的應用程式。hadoop是根據google公司發表的mapreduce和google檔案系統的**自行實作而成。稱為社群版hadoop。
第三方發行版hadoop:
hadoop遵從apache開源協議,使用者可以免費地任意使用和修改hadoop,也正因此,市面上出現了很多hadoop版本。其中有很多廠家在apache hadoop的基礎上開發自己的hadoop產品,比如cloudera的cdh,hortonworks的hdp,mapr的mapr產品等。
二、社群版本與第三方發行版本的比較
apache社群版本
優點:完全開源免費。
社群活躍
文件、資料詳實
缺點:複雜的版本管理。版本管理比較混亂的,各種版本層出不窮,讓很多使用者不知所措。
複雜的集群部署、安裝、配置。通常按照集群需要編寫大量的配置檔案,分發到每一台節點上,容易出錯,效率低下。
複雜的集群運維。對集群的監控,運維,需要安裝第三方的其他軟體,如
ganglia
,nagois
等,運維難度較大。
複雜的生態環境。在
hadoop
生態圈中,元件的選擇、使用,比如
hive
,mahout
,sqoop
,flume
,spark
,oozie
等等,需要大量考慮相容性的問題,版本是否相容,元件是否有衝突,編譯是否能通過等。經常會浪費大量的時間去編譯元件,解決版本衝突問題。
第三方發行版本(如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的查詢以提供實時處理。
(emr):區別於其他提供商的是,這是乙個託管的解決方案,其執行在由amazon elastic compute cloud(amazon ec2)和amzon ****** strorage service(amzon s3)組成的網路規模的基礎設施之上。除了amazon的發行版本之外,你也可以在emr上使用mapr。臨時集群是主要的使用情形。如果你需要一次性的或不常見的大資料處理,emr可能會為你節省大筆開支。然而,這也存在不利之處。其只包含了hadoop生態系統中pig和hive
專案,在預設情況下不包含其他很多專案。並且,emr是高度優化成與s3中的資料一起工作的,這種方式會有較高的延時並且不會定位位於你的計算節點上的資料。所以處於emr上的檔案io相比於你自己的hadoop集群或你的私有ec2集群來說會慢很多,並有更大的延時。
以上為具有代表性的第三方發行版,另外的發行版則不一一枚舉了。
四、選擇決定
當我們決定是否採用某個軟體用於開源環境時,通常需要考慮以下幾個因素:
(1)是否為開源軟體,即是否免費。
(2) 是否有穩定版,這個一般軟體官方**會給出說明。
(3) 是否經實踐驗證,這個可通過檢查是否有一些大點的公司已經在生產環境中使用知道。
(4) 是否有強大的社群支援,當出現乙個問題時,能夠通過社群、論壇等網路資源快速獲取解決方法。
綜上所述,考慮到大資料平台高效的部署和安裝,中心化的配置管理,使用過程中的穩定性、相容性、擴充套件性,以及未來較為簡單、高效的運維,遇到問題低廉的解決成本。
個人建議使用第三方發行版本。
搭建Hadoop集群(生產環境)
hadoop是乙個由apache 會所開發的分布式系統基礎架構。使用者可以在不了解分布式底層細節的情況下,開發分布式程式。充分利用集群的威力進行高速運算和儲存。1 hadoop實現了乙個分布式檔案系統 hadoop distributed file system 簡稱hdfs。hdfs有高容錯性的特...
生產環境下的大資料元件版本公升級
公司所用的大資料平台是基於原生hadoop,並且在這之上做了些微調和二次開發。所以在這裡寫版本號其實意義不太大。但我還是記錄一下 上面的x代表公司二次開發的小版本號,目前參與過公司的hbase版本公升級和zookeeper。因為公司的大資料集群比較多,估計算上pre和sit環境,得有20 30個集群...
Hadoop環境的搭建
格式化 bin hdfs namenode format可能遇到的問題 在建立臨時檔案的時候沒有許可權 解決方案 sudo chmod r a w opt namendoe 和datanode的都有乙個集群id不同的問題datanode是根據集群id去找集群。如果我們在啟動集群的時候,datanod...