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