Hadoop生態系統全面盤點
譯文Hadoop擁有一個龐大而且充滿活力的開發者社區,但Hadoop生態系統當中的很多項目在名稱與功能的匹配性方面出入很大,這直接導致很多朋友難以分清各個項目的作用以及使用目的。
作為Hadoop的構建核心,HDFS與MapReduce是無法回避的兩大要素。不過開發者及企業做出的大量貢獻讓Hadoop成為一套更為復雜的平臺。生態系統中的一部分項目屬于Apache基金會項目(在下圖中以‘A’作為標注),另一些則屬于具備Apache許可、但卻由企業負責運作(在下圖中以‘AL’作為標注)的項目。
在今天的文章中,我們將對Hadoop的發展歷程做一番回顧,看看如今其陣容之中包含著哪些“猛將”。
能做什么: 作為Hadoop的文件系統或者存儲機制。
有何幫助: 創建一套重復性、可容錯且可擴展的文件系統,旨在處理大型文件。利用數據位置提高MapReduce任務的數據輸入性能。
能做什么: 一款高度可擴展的數據庫。
有何幫助: 允許我們以線性方式對數據庫進行擴展。提供可進行調節的數據一致性級別控制。
能做什么: 利用HDFS創建高度可擴展性數據庫。
有何幫助: 實現高度可擴展特性與隨機訪問。利用HDFS保障嚴格的數據一致性。
能做什么:幫助分布式節點之間的數據實現同步 。
有何幫助: 對集群中所有節點之間的一致性分布式小規模數據進行維護。
#p#
能做什么: 將一項工作拆分為多個任務并同時加以實施。
有何幫助: 框架會對分布式系統當中的疑難組件進行抽象化處理,允許系統同時處理大量數據。
能做什么: 允許用戶通過查詢語言來處理數據。
有何幫助: 幫助SQL程序員通過創建類SQL查詢以使用MapReduce。
能做什么: 在大規模數據當中實現低延遲查詢。
有何幫助: 幫助SQL程序員通過創建類SQL查詢以提高大數據訪問速度。
能做什么: 利用數據流或者腳本類語言進行數據處理。
有何幫助: 幫助程序員利用數據流語言發揮MapReduce功能。
能做什么: 利用預先編寫的庫在MapReduce中運行機器學習算法。
有何幫助: 允許用戶通過庫創建MapReduce建議與集群。利用現有代碼加快開發速度。
能做什么: 利用預先編寫的庫在MapReduce中運行圖形算法。
有何幫助: 用戶不必再為了使用MapReduce而重新編寫圖形算法。利用現有代碼加快開發速度。
能做什么: 運行測試以驗證MapReduce工作功能的正確性。
有何幫助: 運行程序測試以驗證MapReduce程序運作的正確性。提供對象,允許用戶模擬輸入流程以驗證執行結果。
#p#
能做什么: 提供簡便方式以實現MapReduce工作數據的輸入與輸出。
有何幫助: 創建域對象以存儲數據。簡化MapReduce工作數據的序列化與反序列化。
能做什么: 在關系型數據庫與Hadoop之間實現數據移動。
有何幫助:允許數據從關系型數據庫轉移到Hadoop當中,以備后期處理。將數據輸出結果從MapReduce工作中提取出來并移回關系型數據庫。
能做什么: 以可擴展方式處理大量日志數據。
有何幫助: 將大量日志數據轉移到HDFS當中。由于Flume擁有的擴展性,因此能夠處理大量傳入數據。
能做什么: 允許用戶通過網絡瀏覽器與Hadoop集群進行交互。
有何幫助: 用戶能夠更輕松地與Hadoop集群實現交互。細化權限設定幫助管理員對用戶進行配置。
能做什么: Hadoop中的復雜工作流的創建任務更加便捷。
有何幫助: 允許用戶利用Hive、pig以及MapReduce等其它項目創建復雜工作流。內置邏輯允許用戶按預定步驟處理故障。
英文原文:http://www.networkworld.com/slideshow/124977/sizing-up-the-hadoop-ecosystem.html#slide1