大數據時代,怎麼才能挑選出合適的Hadoop平台?

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

Hadoop平臺的多種選擇

下圖展示了Hadoop平臺的多種選擇。你可以只安裝Apache 發佈版本,或從不同提供商所提供的幾個發行版本中選擇一個,或決定使用某個大數據套件。每個發行版本都包含有Apache Hadoop,而幾乎每個大數據套件都包含或使用了一個發行版本,理解這一點是很重要的。

大數據時代,怎麼才能挑選出合適的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生態系統所包含的不同項目打包在一起。這就確保了所有使用到的版本都可以順當地在一起工作。發行版本會定期發佈,它包含了不同項目的版本更新。

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

正如上節所提到的,獲取普通Apache Hadoop項目的商業支持是很艱難的,而提供商卻為自己的Hadoop發行版本提供了商業支持。


分享到:


相關文章: