熱線電話:13121318867

登錄
首頁精彩閱讀如何挑選合適的大數據或Hadoop平臺_數據分析師
如何挑選合適的大數據或Hadoop平臺_數據分析師
2015-01-13
收藏

如何挑選合適的大數據或Hadoop平臺_數據分析師


今年,大數據在很多公司都成為相關話題。雖然沒有一個標準的定義來解釋何為 “大數據”,但在處理大數據上,Hadoop已經成為事實上的標準。IBM、Oracle、SAP、甚至Microsoft等幾乎所有的大型軟件提供商都采用了Hadoop。然而,當你已經決定要使用Hadoop來處理大數據時,首先碰到的問題就是如何開始以及選擇哪一種產品。你有多種選擇來安裝Hadoop的一個版本并實現大數據處理。本文討論了不同的選擇,并推薦了每種選擇的適用場合。

Hadoop平臺的多種選擇

下圖展示了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,那就復雜多了。

問題1:復雜的集群設置

你可以使用偽分布式模式在單個節點上模擬多節點的安裝。你可以在單臺服務器上模擬在多臺不同服務器上的安裝。就算是在該模式下,你也要做大量的配置工作。如果你想設置一個由幾個節點組成的集群,毫無疑問,該過程就變得更為復雜了。要是你是一個新手管理員,那么你就不得不在用戶權限、訪問權限等諸如此類的問題中痛苦掙扎。

問題2: Hadoop生態系統的使用

在Apache中,所有項目之間都是相互獨立的。這是很好的一點!不過Hadoop生態系統除了包含Hadoop外,還包含了很多其他Apache項目:

  • Pig:分析大數據集的一個平臺,該平臺由一種表達數據分析程序的高級語言和對這些程序進行評估的基礎設施一起組成。
  • Hive:用于Hadoop的一個數據倉庫系統,它提供了類似于SQL的查詢語言,通過使用該語言,可以方便地進行數據匯總,特定查詢以及分析存放在Hadoop兼容文件系統中的大數據。
  • Hbase:一種分布的、可伸縮的、大數據儲存庫,支持隨機、實時讀/寫訪問。
  • Sqoop:為高效傳輸批量數據而設計的一種工具,其用于Apache Hadoop和結構化數據儲存庫如關系數據庫之間的數據傳輸。
  • Flume:一種分布式的、可靠的、可用的服務,其用于高效地搜集、匯總、移動大量日志數據。
  • ZooKeeper:一種集中服務,其用于維護配置信息,命名,提供分布式同步,以及提供分組服務。

還有其他一些項目。

你需要安裝這些項目,并手動地將它們集成到Hadoop中。

你需要自己留意不同的版本和發布版本。不幸的是,不是所有的版本都能在一起完美地運行起來。你要自己比較發布說明并找出解決之道。Hadoop提供了眾多的不同版本、分支、特性等等。跟你從其他項目了解的1.0、1.1、2.0這些版本號不同,Hadoop的版本可遠沒這么簡單。如果你想更進一步了解關于“Hadoop版本地獄”的細節,請閱讀“大象的家譜(Genealogy of elephants)”一文。

問題3:商業支持

Apache Hadoop只是一個開源項目。這當然有很多益處。你可以訪問和更改源碼。實際上有些公司使用并擴展了基礎代碼,還添加了新的特性。很多討論、文章、博客和郵件列表中都提供了大量信息。

然而,真正的問題是如何獲取像Apache Hadoop這樣的開源項目的商業支持。公司通常只是為自己的產品提供支持,而不會為開源項目提供支持(不光是Hadoop項目,所有開源項目都面臨這樣的問題)。

何時使用Apache Hadoop

由于在本地系統上,只需10分鐘左右就可完成其獨立安裝,所以Apache Hadoop很適合于第一次嘗試。你可以試試WordCount示例(這是Hadoop的“hello world”示例),并瀏覽部分MapReduce的Java代碼 。

如果你并不想使用一個“真正的”Hadoop發行版本(請看下一節)的話,那么選擇Apache Hadoop也是正確的。然而,我沒有理由不去使用Hadoop的一個發行版本——因為它們也有免費的、非商業版。

所以,對于真正的Hadoop項目來說,我強烈推薦使用一個Hadoop的發行版本來代替Apache Hadoop。下一節將會說明這種選擇的優點。

Hadoop發行版本

Hadoop發行版本解決了在上一節中所提到的問題。發行版本提供商的商業模型百分之百地依賴于自己的發行版本。他們提供打包、工具和商業支持。而這些不僅極大地簡化了開發,而且也極大地簡化了操作。

Hadoop發行版本將Hadoop生態系統所包含的不同項目打包在一起。這就確保了所有使用到的版本都可以順當地在一起工作。發行版本會定期發布,它包含了不同項目的版本更新。

發行版本的提供商在打包之上還提供了用于部署、管理和監控Hadoop集群的圖形化工具。采用這種方式,可以更容易地設置、管理和監控復雜集群。節省了大量工作。

正如上節所提到的,獲取普通Apache Hadoop項目的商業支持是很艱難的,而提供商卻為自己的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發行版本?

本文不會評估各個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(使用非開源的組件)??梢允褂帽镜豒nix命令來代替Hadoop命令。除此之外,MapR還憑借諸如快照、鏡像或有狀態的故障恢復之類的高可用性特性來與其他競爭者相區別。該公司也領導著Apache Drill項目,本項目是Google的Dremel的開源項目的重新實現,目的是在Hadoop數據上執行類似SQL的查詢以提供實時處理。
  • Amazon Elastic Map Reduce(EMR):區別于其他提供商的是,這是一個托管的解決方案,其運行在由Amazon Elastic Compute Cloud(Amazon EC2)和Amzon Simple Strorage Service(Amzon S3)組成的網絡規模的基礎設施之上。除了Amazon的發行版本之外,你也可以在EMR上使用MapR。臨時集群是主要的使用情形。如果你需要一次性的或不常見的大數據處理,EMR可能會為你節省大筆開支。然而,這也存在不利之處。其只包含了Hadoop生態系統中Pig和Hive項目,在默認情況下不包含其他很多項目。并且,EMR是高度優化成與S3中的數據一起工作的,這種方式會有較高的延時并且不會定位位于你的計算節點上的數據。所以處于EMR上的文件IO相比于你自己的Hadoop集群或你的私有EC2集群來說會慢很多,并有更大的延時。

上面的發行版本都能靈活地單獨使用或是與不同的大數據套件組合使用。而這期間出現的一些其它的發行版本則不夠靈活,會將你綁定至特定的軟件棧和(或)硬件棧。比如EMC的Pivotal HD原生地融合了Greenplum的分析數據庫,目的是為了在Hadoop,或Intel的Apache Hadoop發行版本之上提供實時SQL查詢和卓越的性能,Intel的Apache Hadoop發行版本為固態驅動器進行了優化,這是其他Hadoop公司目前還沒有的做法。

所以,如果你的企業已經有了特定的供應方案棧,則一定要核查它支持哪個Hadoop發行版本。比如,如果你使用了Greeplum數據庫,那么Pivotal就可能是一個完美的選擇,而在其他情況下,可能更適合采取更加靈活的解決方案。例如,如果你已經使用了Talend ESB,并且你想使用TalenD Big Data來啟動你的大數據項目,那么你可以選擇你心儀的Hadoop發行版本,因為Talend并不依賴于Hadoop發行版本的某個特定提供商。

為了做出正確的選擇,請了解各個發行版本的概念并進行試用。請查證所提供的工具并分析企業版加上商業支持的總費用。在這之后,你就可以決定哪個發行版本是適合自己的。

何時使用Hadoop發行版本?

由于發行版本具有打包、工具和商業支持這些優點,所以在絕大多數使用情形下都應使用Hadoop的發行版本。使用普通的(原文為plan,應為plain)Apache Hadoop發布版本并在此基礎之上構建自己的發行版本的情況是極少見的。你會要自己測試打包,構建自己的工具,并自己動手寫補丁。其他一些人已經遇到了你將會遇到的同樣問題。所以,請確信你有很好的理由不使用Hadoop發行版本。

然而,就算是Hadoop發行版本也需要付出很大的努力。你還是需要為自己的MapReduce作業編寫大量代碼,并將你所有的不同數據源集成到Hadoop中。而這就是大數據套件的切入點。

大數據套件

你可以在Apache HadoopHadoop發行版本之上使用一個大數據套件。大數據套件通常支持多個不同的Hadoop發行版本。然而,某些提供商實現了自己的Hadoop解決方案。無論哪種方式,大數據套件為了處理大數據而在發行版本上增加了幾個更進一步的特性:

  • 工具:通常,大數據套件是建立像Eclipse之類的IDE之上。附加插件方便了大數據應用的開發。你可以在自己熟悉的開發環境之內創建、構建并部署大數據服務。
  • 建模:Apache HadoopHadoop發行版本為Hadoop集群提供了基礎設施。然而,你仍然要寫一大堆很復雜的代碼來構建自己的MapReduce程序。你可以使用普通的Java來編寫這些代碼,或者你也可以那些已經優化好的語言,比如PigLatin或Hive查詢語言(HQL),它們生成MapReduce代碼。大數據套件提供了圖形化的工具來為你的大數據服務進行建模。所有需要的代碼都是自動生成的。你只用配置你的作業(即定義某些參數)。這樣實現大數據作業變得更容易和更有效率。
  • 代碼生成:生成所有的代碼。你不用編寫、調試、分析和優化你的MapReduce代碼。
  • 調度:需要調度和監控大數據作業的執行。你無需為了調度而編寫cron作業或是其他代碼。你可以很容易地使用大數據套件來定義和管理執行計劃。
  • 集成Hadoop需要集成所有不同類技術和產品的數據。除了文件和SQL數據庫之外,你還要集成NoSQL數據庫、諸如Twitter或Facebook這樣的社交媒體、來自消息中間件的消息、或者來自類似于Salesforce或SAP的B2B產品的數據。通過提供從不同接口到Hadoop和后端的眾多連接器,大數據套件為集成提供了很多幫助。你不用手工編寫連接代碼,你只需使用圖形化的工具來集成并映射所有這些數據。集成能力通常也具有數據質量特性,比如數據清洗以提高導入數據的質量。

大數據套件提供商

大數據套件的數目在持續增長。你可以在幾個開源和專有提供商之間選擇。像IBM、Oracle、Microsoft等這樣的大部分大軟件提供商將某一類的大數據套件集成到自己的軟件產品組合中。而絕大多數的這些廠商僅只支持某一個Hadoop發行版本,要么是自己的,要么和某個Hadoop發行版本提供商合作。

從另外一方面來看,還有專注于數據處理的提供商可供選擇。它們提供的產品可用于數據集成、數據質量、企業服務總線、業務流程管理和更進一步的集成組件。既有像Informatica這樣的專有提供商,也有Talend或Pentaho這樣的開源提供商。某些提供商不只支持某一個Hadoop發行版本,而是同時支持很多的。比如,就在撰寫本文的時刻,Talend就可以和Apache Hadoop、Cloudera、Hortonworks、MapR、Amazon Elastic MapReduce或某個定制的自創發行版本(如使用EMC的Pivotal HD)一起使用。

如何選擇合適的大數據套件?

本文不會評估各個大數據套件。當你選擇大數據套件時,應考慮幾個方面。下面這些應該可以幫助你為自己的大數據問題作出合適的抉擇:

  • 簡單性:親自試用大數據套件。這也就意味著:安裝它,將它連接到你的Hadoop安裝,集成你的不同接口(文件、數據庫、B2B等等),并最終建模、部署、執行一些大數據作業。自己來了解使用大數據套件的容易程度——僅讓某個提供商的顧問來為你展示它是如何工作是遠遠不夠的。親自做一個概念驗證。
  • 廣泛性:是否該大數據套件支持廣泛使用的開源標準——不只是Hadoop和它的生態系統,還有通過SOAP和REST web服務的數據集成等等。它是否開源,并能根據你的特定問題易于改變或擴展?是否存在一個含有文檔、論壇、博客和交流會的大社區?
  • 特性:是否支持所有需要的特性?Hadoop的發行版本(如果你已經使用了某一個)?你想要使用的Hadoop生態系統的所有部分?你想要集成的所有接口、技術、產品?請注意過多的特性可能會大大增加復雜性和費用。所以請查證你是否真正需要一個非常重量級的解決方案。是否你真的需要它的所有特性?
  • 陷阱:請注意某些陷阱。某些大數據套件采用數據驅動的付費方式(“數據稅”),也就是說,你得為自己處理的每個數據行付費。因為我們是在談論大數據,所以這會變得非常昂貴。并不是所有的大數據套件都會生成本地Apache Hadoop代碼,通常要在每個Hadoop集群的服務器上安裝一個私有引擎,而這樣就會解除對于軟件提供商的獨立性。還要考慮你使用大數據套件真正想做的事情。某些解決方案僅支持將Hadoop用于ETL來填充數據至數據倉庫,而其他一些解決方案還提供了諸如后處理、轉換或Hadoop集群上的大數據分析。ETL僅是Apache Hadoop和其生態系統的一種使用情形。
  • 決策樹:框架vs.發行版本vs.套件

現在,你了解了Hadoop不同選擇之間的差異。最后, 讓我們總結并討論選擇Apache Hadoop框架、Hadoop發行版本或大數據套件的場合。

下面的“決策樹”將幫助你選擇合適的一種:

Apache:

  1. 學習并理解底層細節?
  2. 專家?自己選擇和配置?

發行版本:

  1. 容易的設置?
  2. 初學(新手)?
  3. 部署工具?
  4. 需要商業支持?

大數據套件:

  1. 不同數據源集成?
  2. 需要商業支持?
  3. 代碼生成?
  4. 大數據作業的圖形化調度?
  5. 實現大數據處理(集成、操作、分析)?

結論

Hadoop安裝有好幾種選擇。你可以只使用Apache Hadoop項目并從Hadoop生態系統中創建自己的發行版本。像Cloudera、Hortonworks或MapR這樣的Hadoop發行版本提供商為了減少用戶需要付出的工作,在Apache Hadoop之上添加了如工具、商業支持等特性。在Hadoop發行版本之上,為了使用如建模、代碼生成、大數據作業調度、所有不同種類的數據源集成等附加特性,你可以使用一個大數據套件。一定要評估不同的選擇來為自己的大數據項目做出正確的決策。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢