原創|行業資訊|編輯:龔雪|2015-11-06 10:49:06.000|閱讀 578 次
概述:IBM、Oracle、SAP、甚至Microsoft等幾乎所有的大型軟件提供商都采用了Hadoop。然而,當你已經決定要使用Hadoop來處理大數據時,首先碰到的問題就是如何開始以及選擇哪一種產品。本文討論了不同的選擇,并推薦了每種選擇的適用場合。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下圖展示了Hadoop平臺的多種選擇。你可以只安裝Apache 發布版本,或從不同提供商所提供的幾個發行版本中選擇一個,或決定使用某個大數據套件。每個發行版本都包含有Apache Hadoop,而幾乎每個大數據套件都包含或使用了一個發行版本,理解這一點是很重要的。
下面我們首先從Apache Hadoop開始來好好看看每種選擇。
Apache Hadoop; Apache Hadoop項目的目前版本(2.0版)含有以下模塊
Hadoop通用模塊:支持其他Hadoop模塊的通用工具集。
Hadoop分布式文件系統(HDFS):支持對應用數據高吞吐量訪問的分布式文件系統。
Hadoop YARN:用于作業調度和集群資源管理的框架。
Hadoop MapReduce:基于YARN的大數據并行處理系統。
在本地系統上獨立安裝Apache Hadoop是非常容易的(只需解壓縮并設置某些環境變量,然后就可以開始使用了)。但是這只合適于入門和做一些基本的教程學習。
如果你想在一個或多個“真正的節點”上安裝Apache Hadoop,那就復雜多了。
在Apache中,所有項目之間都是相互獨立的。這是很好的一點!不過Hadoop生態系統除了包含Hadoop外,還包含了很多其他Apache項目:
Pig:分析大數據集的一個平臺,該平臺由一種表達數據分析程序的高級語言和對這些程序進行評估的基礎設施一起組成。
Hive:用于Hadoop的一個數據倉庫系統,它提供了類似于SQL的查詢語言,通過使用該語言,可以方便地進行數據匯總,特定查詢以及分析存放在Hadoop兼容文件系統中的大數據。
Hbase:一種分布的、可伸縮的、大數據儲存庫,支持隨機、實時讀/寫訪問。
Sqoop:為高效傳輸批量數據而設計的一種工具,其用于Apache Hadoop和結構化數據儲存庫如關系數據庫之間的數據傳輸。
Flume:一種分布式的、可靠的、可用的服務,其用于高效地搜集、匯總、移動大量日志數據。
ZooKeeper:一種集中服務,其用于維護配置信息,命名,提供分布式同步,以及提供分組服務。
你需要安裝這些項目,并手動地將它們集成到Hadoop中。
Apache Hadoop只是一個開源項目。這當然有很多益處。你可以訪問和更改源碼。實際上有些公司使用并擴展了基礎代碼,還添加了新的特性。很多討論、文章、博客和郵件列表中都提供了大量信息。
然而,真正的問題是如何獲取像Apache Hadoop這樣的開源項目的商業支持。公司通常只是為自己的產品提供支持,而不會為開源項目提供支持(不光是Hadoop項目,所有開源項目都面臨這樣的問題)。
由于在本地系統上,只需10分鐘左右就可完成其獨立安裝,所以Apache Hadoop很適合于第一次嘗試。你可以試試WordCount示例(這是Hadoop的“hello world”示例),并瀏覽部分MapReduce的Java代碼 。 如果你并不想使用一個“真正的”Hadoop發行版本(請看下一節)的話,那么選擇Apache Hadoop也是正確的。然而,我沒有理由不去使用Hadoop的一個發行版本——因為它們也有免費的、非商業版。
所以,對于真正的Hadoop項目來說,我強烈推薦使用一個Hadoop的發行版本來代替Apache Hadoop。下一節將會說明這種選擇的優點。
Hadoop發行版本解決了在上一節中所提到的問題。發行版本提供商的商業模型百分之百地依賴于自己的發行版本。他們提供打包、工具和商業支持。而這些不僅極大地簡化了開發,而且也極大地簡化了操作。 Hadoop發行版本將Hadoop生態系統所包含的不同項目打包在一起。這就確保了所有使用到的版本都可以順當地在一起工作。發行版本會定期發布,它包含了不同項目的版本更新。
發行版本的提供商在打包之上還提供了用于部署、管理和監控Hadoop集群的圖形化工具。采用這種方式,可以更容易地設置、管理和監控復雜集群。節省了大量工作。 正如上節所提到的,獲取普通Apache Hadoop項目的商業支持是很艱難的,而提供商卻為自己的Hadoop發行版本提供了商業支持。
目前,除了Apache Hadoop外, HortonWorks、Cloudera和MapR三駕馬車在發布版本上差不多齊頭并進。雖然,在此期間也出現了其他的Hadoop發行版本。比如EMC公司的Pivotal HD、IBM的InfoSphere BigInsights。通過Amazon Elastic MapReduce(EMR),Amazon甚至在其云上提供了一個托管的、預配置的解決方案。
雖然很多別的軟件提供商沒有開發自己的Hadoop發行版本,但它們和某一個發行版本提供商相互合作。舉例來說,Microsoft和Hortonworks相互合作,特別是合作將Apache Hadoop引入到Windows Server操作系統和Windows Azure云服務中。另外一個例子是,Oracle通過將自己的軟硬件與Cloudera的Hadoop發行版本結合到一起,提供一個大數據應用產品。而像SAP、Talend這樣的軟件提供商則同時支持幾個不同的發行版本。
本文不會評估各個Hadoop的發行版本。然而,下面會簡短地介紹下主要的發行版本提供商。在不同的發行版本之間一般只有一些細微的差別,而提供商則將這些差別視為秘訣和自己產品的與眾不同之處。下面的列表解釋了這些差別:
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的查詢以提供實時處理。
為了做出正確的選擇,請了解各個發行版本的概念并進行試用。請查證所提供的工具并分析企業版加上商業支持的總費用。在這之后,你就可以決定哪個發行版本是適合自己的。
由于發行版本具有打包、工具和商業支持這些優點,所以在絕大多數使用情形下都應使用Hadoop的發行版本。使用普通的(原文為plan,應為plain)Apache Hadoop發布版本并在此基礎之上構建自己的發行版本的情況是極少見的。你會要自己測試打包,構建自己的工具,并自己動手寫補丁。其他一些人已經遇到了你將會遇到的同樣問題。所以,請確信你有很好的理由不使用Hadoop發行版本。
然而,就算是Hadoop發行版本也需要付出很大的努力。你還是需要為自己的MapReduce作業編寫大量代碼,并將你所有的不同數據源集成到Hadoop中。而這就是大數據套件的切入點。
Hadoop安裝有好幾種選擇。你可以只使用Apache Hadoop項目并從Hadoop生態系統中創建自己的發行版本。像Cloudera、Hortonworks或MapR這樣的Hadoop發行版本提供商為了減少用戶需要付出的工作,在Apache Hadoop之上添加了如工具、商業支持等特性。在Hadoop發行版本之上,為了使用如建模、代碼生成、大數據作業調度、所有不同種類的數據源集成等附加特性,你可以使用一個大數據套件。一定要評估不同的選擇來為自己的大數據項目做出正確的決策。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn