十八款Hadoop工具幫你馴服大資料

51cto發表於2013-12-12

  Hadoop已經通過自身的蓬勃發展證明,它不僅僅是一套用於將工作內容傳播到計算機群組當中的小型堆疊--不,這與它的潛能相比簡直微不足道。這套核心的價值已經被廣泛證實,目前大量專案如雨後春筍般圍繞它建立起來。有些專案負責資料管理、有些負責流程監控、還有一些則提供先進的資料儲存機制。

  Hadoop業界正在迅速發展,從業企業拿出的解決方案也多種多樣,其中包括提供技術支援、在託管叢集中提供按時租用服務、為這套開源核心開發先進的功能強化或者將自有工具新增到方案組合當中。

  在今天的文章中,我們將一同瞭解當下Hadoop生態系統當中那些最為突出的傑作。總體而言,這是一套由眾多工具及程式碼構成的堅實基礎、共同聚集在"Hadoop"這面象徵著希望的大旗之下。

  Hadoop

 

  雖然很多人會把對映與規約工具廣義化稱為Hadoop,但從客觀角度講、其實只有一小部分核心程式碼算是真正的Hadoop。多個工作節點負責對儲存在本地的資料進行功能執行,而基於Java的程式碼則對其加以同步。這些工作節點得到的結果隨後經過彙總並整理為報告。第一個步驟被稱為"對映(即map)",而第二步驟則被稱為"規約(reduce)"。

  Hadoop為本地資料儲存與同步系統提供一套簡化抽象機制,從而保證程式設計師能夠將注意力集中在編寫程式碼以實現資料分析工作上,其它工作交給Hadoop處理即可。Hadoop會將任務加以拆分並設計執行規程。錯誤或者故障在意料之中,Hadoop的設計初衷就在於適應由單獨裝置所引發的錯誤。

  專案程式碼遵循Apache許可機制。

  官方網站:hadoop.apache.org

  Ambari

  Hadoop叢集的建立需要涉及大量重複性工作。Ambari提供一套基於Web的圖形使用者介面並配備引導指令碼,能夠利用大部分標準化元件實現叢集設定。在大家採納Ambari並將其付諸執行之後,它將幫助各位完成配置、管理以及監管等重要的Hadoop叢集相關任務。上圖顯示的就是叢集啟動後Ambari所顯示的資訊螢幕。

  Ambari屬於Apache旗下的衍生專案,並由Hortonworks公司負責提供支援。

  下載地址:http://incubator.apache.org/ambari/

  HDFS (即Hadoop分散式檔案系統)

  Hadoop分散式檔案系統提供一套基礎框架,專門用於拆分收集自不同節點之間的資料,並利用複製手段在節點故障時實現資料恢復。大型檔案會被拆分成資料塊,而多個節點能夠保留來自同一個檔案的所有資料塊。上圖來自Apache公佈的說明文件,旨在展示資料塊如何分佈至各個節點當中。

  這套檔案系統的設計目的在於同時實現高容錯性與高資料吞吐能力的結合。載入資料塊能夠保持穩定的資訊流通,而低頻率快取處理則將延遲降至最小。預設模式假設的是需要處理大量本地儲存資料的長時間作業,這也吻合該專案所提出的"計算能力遷移比資料遷移成本更低"的座右銘。

  HDFS同樣遵循Apache許可。

  官方網站:hadoop.apache.org

  HBase

  當資料被彙總成一套規模龐大的列表時,HBase將負責對其進行儲存、搜尋並自動在不同節點之間共享該列表,從而保證MapReduce作業能夠以本地方式執行。即使列表中容納的資料行數量高達數十億,該作業的本地版本仍然能夠對其進行查詢。

  該程式碼並不能提供其它全功能資料庫所遵循的ACID保證,但它仍然為我們帶來一部分關於本地變更的承諾。所有衍生版本的命運也都維繫在一起--要麼共同成功、要麼一起失敗。

  這套系統通常被與谷歌的BigTable相提並論,上圖所示為來自HareDB(一套專為HBase打造的圖形使用者介面客戶端)的截圖。

  官方網站:hbase.apache.org

相關文章