天天看點

2015 Bossie評選:最佳開源大資料工具

bossie獎是知名英文it網站infoworld針對開源軟體頒發的年度獎項,根據這些軟體對開源界的貢獻,以及在業界的影響力評判獲獎對象。本次infoworld評選出了22款最佳的開源大資料工具,像spark、storm都名列榜單之上。

2015 Bossie評選:最佳開源大資料工具

infoworld在分布式資料處理、流式資料分析、機器學習以及大規模資料分析領域精選出了2015年的開源工具獲獎者,下面我們來簡單介紹下這些獲獎的技術工具。

2015 Bossie評選:最佳開源大資料工具

在apache的大資料項目中,spark是最火的一個,特别是像ibm這樣的重量級貢獻者的深入參與,使得spark的發展和進步速度飛快。與spark産生最甜蜜的火花點仍然是在機器學習領域。去年以來dataframes api取代schemardd api,類似于r和pandas的發現,使資料通路比原始rdd接口更簡單。spark的新發展中也有新的為建立可重複的機器學習的工作流程,可擴充和可優化的支援各種存儲格式,更簡單的接口來通路機器學習算法,改進的叢集資源的監控和任務跟蹤。在spark1.5的預設情況下,tungsten記憶體管理器通過微調在記憶體中的資料結構布局提供了更快速的處理能力。最後,新的spark-packages.org網站上有超過100個第三方貢獻的連結庫擴充,增加了許多有用的功能。

2015 Bossie評選:最佳開源大資料工具

storm是apache項目中的一個分布式計算架構項目,主要應用于流式資料實時處理領域。他基于低延時互動模式理念,以應對複雜的事件處理需求。和spark不同,storm可以進行單點随機處理,而不僅僅是微批量任務,并且對記憶體的需求更低。在我的經驗中,他對于流式資料處理更有優勢,特别是當兩個資料源之間的資料快速傳輸過程中,需要對資料進行快速處理的場景。spark掩蓋了很多storm的光芒,但其實spark在很多流失資料處理的應用場景中并不适合。storm經常和apache kafka一起配合使用。

2015 Bossie評選:最佳開源大資料工具

h2o是一種分布式的記憶體處理引擎用于機器學習,它擁有一個令人印象深刻的數組的算法。早期版本僅僅支援r語言,3.0版本開始支援python和java語言,同時它也可以作為spark在後端的執行引擎。使用h2o的最佳方式是把它作為r環境的一個大記憶體擴充,r環境并不直接作用于大的資料集,而是通過擴充通訊協定例如rest api與h2o叢集通訊,h2o來處理大量的資料工作。幾個有用的r擴充包,如ddply已經被打包,允許你在處理大規模資料集時,打破本地機器上記憶體容量的限制。你可以在ec2上運作h2o,或者hadoop叢集/yarn叢集,或者docker容器。用蘇打水(spark+ h2o)你可以通路在叢集上并行的通路spark rdds,在資料幀被spark處理後。再傳遞給一個h2o的機器學習算法。

2015 Bossie評選:最佳開源大資料工具

apex是一個企業級的大資料動态處理平台,即能夠支援即時的流式資料處理,也可以支援批量資料處理。它可以是一個yarn的原生程式,能夠支援大規模、可擴充、支援容錯方法的流式資料處理引擎。它原生的支援一般事件處理并保證資料一緻性(精确一次處理、最少一次、最多一次)以前datatorrent公司開發的基于apex的商業處理軟體,其代碼、文檔及架構設計顯示,apex在支援devops方面能夠把應用開發清楚的分離,使用者代碼通常不需要知道他在一個流媒體處理叢集中運作。malhar是一個相關項目,提供超過300種常用的實作共同的業務邏輯的應用程式模闆。malhar的連結庫可以顯著的減少開發apex應用程式的時間,并且提供了連接配接各種存儲、檔案系統、消息系統、資料庫的連接配接器和驅動程式。并且可以進行擴充或定制,以滿足個人業務的要求。所有的malhar元件都是apache許可下使用。

2015 Bossie評選:最佳開源大資料工具

druid在今年二月轉為了商業友好的apache許可證,是一個基于“事件流的混合引擎,能夠滿足olap解決方案。最初他主要應用于廣告市場的線上資料處理領域,德魯伊可以讓使用者基于時間序列資料做任意和互動的分析。一些關鍵的功能包括低延遲事件處理,快速聚合,近似和精确的計算。druid的核心是一個使用專門的節點來處理每個部分的問題自定義的資料存儲。實時分析基于實時管理(jvm)節點來處理,最終資料會存儲在曆史節點中負責老的資料。代理節點直接查詢實時和曆史節點,給使用者一個完整的事件資訊。測試表明50萬事件資料能夠在一秒内處理完成,并且每秒處理能力可以達到100萬的峰值,druid作為線上廣告處理、網絡流量和其他的活動流的理想實時處理平台。

2015 Bossie評選:最佳開源大資料工具

flink的核心是一個事件流資料流引擎。雖然表面上類似spark,實際上flink是采用不同的記憶體中處理方法的。首先,flink從設計開始就作為一個流處理器。批處理隻是一個具有開始和結束狀态的流式處理的特殊情況,flink提供了api來應對不同的應用場景,無論是api(批處理)和資料流api。mapreduce的世界的開發者們在面對dataset處理api時應該有賓至如歸的感覺,并且将應用程式移植到flink非常容易。在許多方面,flink和spark一樣,其的簡潔性和一緻性使他廣受歡迎。像spark一樣,flink是用scala寫的。

2015 Bossie評選:最佳開源大資料工具

8

elasticsearch是基于apache lucene搜尋分布式檔案伺服器。它的核心,elasticsearch基于json格式的近乎實時的建構了資料索引,能夠實作快速全文檢索功能。結合開源kibana bi顯示工具,您可以建立令人印象深刻的資料可視化界面。elasticsearch易于設定和擴充,他能夠自動根據需要使用新的硬體來進行分片。他的查詢文法和sql不太一樣,但它也是大家很熟悉的json。大多數使用者不會在那個級别進行資料互動。開發人員可以使用原生json-over-http接口或常用的幾個開發語言進行互動,包括ruby,python,php,perl,java,javascript等。

2015 Bossie評選:最佳開源大資料工具

如果你正在尋找一個使用者友好的工具,能了解最新流行的nosql資料的可視化工具,那麼你應該看一看slamdata。slamdata允許您用熟悉的sql文法來進行json資料的嵌套查詢,不需要轉換或文法改造。該技術的主要特點之一是它的連接配接器。從mongodb,hbase,cassandra和apache的spark,slamdata同大多數業界标準的外部資料源可以友善的進行整合,并進行資料轉換和分析資料。你可能會問:“我不會有更好的資料池或資料倉庫工具嗎?請認清這是在nosql領域。

2015 Bossie評選:最佳開源大資料工具

drill是一種用于大型資料集的互動分析的分布式系統,由谷歌的dremel催生。drill專為嵌套資料的低延遲分析設計,它有一個明确的設計目标,靈活的擴充到10000台伺服器來處理查詢記錄資料,并支援兆級别的資料記錄。嵌套的資料可以從各種資料源獲得的(如hdfs,hbase,amazon s3,和blobs)和多種格式(包括json,avro,和buffers),你不需要在讀取時指定一個模式(“讀時模式”)。drill使用ansi 2003 sql的查詢語言為基礎,是以資料工程師是沒有學習壓力的,它允許你連接配接查詢資料并跨多個資料源(例如,連接配接hbase表和在hdfs中的日志)。最後,drill提供了基于odbc和jdbc接口以和你所喜歡的bi工具對接。

2015 Bossie評選:最佳開源大資料工具

hbase在今年的裡程碑達到1.x版本并持續改善。像其他的非關系型的分布式資料存儲一樣,hbase的查詢結果回報非常迅速,是以擅長的是經常用于背景搜尋引擎,如易趣網,博科和雅虎等網站。作為一個穩定的、成熟的軟體産品,hbase新鮮的功能并不是經常出現,但這種穩定性往往是企業最關心的。最近的改進包括增加區域伺服器改進高可用性,滾動更新支援,和yarn的相容性提升。在他的特性更新方面包括掃描器更新,保證提高性能,使用hbase作為流媒體應用像storm和spark持久存儲的能力。hbase也可以通過phoenix項目來支援sql查詢,其sql相容性在穩步提高。phoenix最近增加了一個spark連接配接器,添加了自定義函數的功能。

2015 Bossie評選:最佳開源大資料工具

随着hive過去多年的發展,逐漸成熟,今年釋出了1.0正式版本,它用于基于sql的資料倉庫領域。目前基金會主要集中在提升性能、可擴充性和sql相容性。最新的1.2版本顯著的提升了acid語意相容性、跨資料中心複制,以及以成本為基礎的優化器。hive1.2也帶來了改進的sql的相容性,使組織利用它更容易的把從現有的資料倉庫通過etl工具進行轉移。在規劃中講主要改進:以記憶體緩存為核心的速度改進 llap,spark的機器學習庫的內建,提高sql的前嵌套子查詢、中間類型支援等。

2015 Bossie評選:最佳開源大資料工具

kylin是ebay開發的用于處理非常大量資料的olap分析系統,他使用标準的sql文法,和很多資料分析産品很像。kylin使用hive和mr來建構立方體,hive用作預連結,mr用作預聚合,hdfs用來儲存建構立方體時的中間檔案,hbase用來存儲立方體,hbase的coprocessor(協處理器)用來響應查詢。像大多數其他的分析應用一樣,kylin支援多種通路方法,包括jdbc,odbc api進行程式設計通路以及rest api接口。

2015 Bossie評選:最佳開源大資料工具

cdap(cask data access platform)是一個在hadoop之上運作的架構,抽象了建造和運作大資料應用的複雜性。cdap圍繞兩個核心概念:資料和應用程式。cdap資料集是資料的邏輯展現,無論底層存儲層是什麼樣的;cdap提供實時資料流處理能力。應用程式使用cdap服務來處理諸如分布式事務和服務發現等應用場景,避免程式開發者淹沒在hadoop的底層細節中。cdap自帶的資料攝取架構和一些預置的應用和一些通用的“包”,例如etl和網站分析,支援測試,調試和安全等。和大多數原商業(閉源)項目開源一樣,cdap具有良好的文檔,教程,和例子。

2015 Bossie評選:最佳開源大資料工具

安全一直是hadoop的一個痛處。它不是說(像是經常報道)hadoop是“不安全”或“不安全”。事實是,hadoop有很多的安全功能,雖然這些安全功能都不太強大。我的意思是,每一個元件都有它自己的身份驗證和授權實施,這與其他的平台沒有內建。2015年5月,hortonworks收購xa /安全,随後經過了改名後,我們有了ranger。ranger使得許多hadoop的關鍵部件處在一個保護傘下,它允許你設定一個“政策”,把你的hadoop安全綁定到到您現有的acl基于活動目錄的身份驗證和授權體系下。ranger給你一個地方管理hadoop的通路控制,通過一個漂亮的頁面來做管理、審計、加密。

2015 Bossie評選:最佳開源大資料工具

mesos提供了高效、跨分布式應用程式和架構的資源隔離和共享,支援hadoop、 mpi、hypertable、spark等。mesos是apache孵化器中的一個開源項目,使用zookeeper實作容錯複制,使用linux containers來隔離任務,支援多種資源計劃配置設定(記憶體和cpu)。提供java、python和c++ apis來開發新的并行應用程式,提供基于web的使用者界面來提檢視叢集狀态。mesos應用程式(架構)為群集資源協調兩級排程機制,是以寫一個mesos應用程式對程式員來說感覺不像是熟悉的體驗。雖然mesos是新的項目,成長卻很快。

2015 Bossie評選:最佳開源大資料工具

apache nifi 0.2.0 釋出了,該項目目前還處于 apache 基金會的孵化階段。apache nifi 是一個易于使用、功能強大而且可靠的資料處理和分發系統。apache nifi 是為資料流設計。它支援高度可配置的訓示圖的資料路由、轉換和系統中介邏輯。apache nifi是由美國過國家安全局(nsa)貢獻給apache基金會的開源項目,其設計目标是自動化系統間的資料流。基于其工作流式的程式設計理念,nifi非常易于使用,強大,可靠及高可配置。兩個最重要的特性是其強大的使用者界面及良好的資料回溯工具。nifi的使用者界面允許使用者在浏覽器中直覺的了解并與資料流舉行互動,更快速和安全的進行疊代。其資料回溯特性允許使用者檢視一個對象如何在系統間流轉,回放以及可視化關鍵步驟之前之後發生的情況,包括大量複雜的圖式轉換,fork,join及其他操作等。另外,nifi使用基于元件的擴充模型以為複雜的資料流快速增加功能,開箱即用的元件中處理檔案系統的包括ftp,sftp及http等,同樣也支援hdfs。nifi獲得來來自業界的一緻好評,包括hortonworks ceo,leverage cto及prescient edge首席系統架構師等。

2015 Bossie評選:最佳開源大資料工具

在大資料領域,kafka已經成為分布式釋出訂閱消息的事實标準。它的設計允許代理支援成千上萬的客戶在資訊吞吐量告訴處理時,同時通過分布式送出日志保持耐久性。kafka是通過在hdfs系統上儲存單個日志檔案,由于hdfs是一個分布式的存儲系統,使資料的備援拷貝,是以kafka自身也是受到良好保護的。當消費者想讀消息時,kafka在中央日志中查找其偏移量并發送它們。因為消息沒有被立即删除,增加消費者或重發曆史資訊不産生額外消耗。kafka已經為能夠每秒發送2百萬個消息。盡管kafka的版本号是sub-1.0,但是其實kafka是一個成熟、穩定的産品,使用在一些世界上最大的叢集中。

2015 Bossie評選:最佳開源大資料工具

opentsdb是建立在時間序列基礎上的hbase資料庫。它是專為分析從應用程式,移動裝置,網絡裝置,和其他硬體裝置收集的資料。它自定義hbase架構用于存儲時間序列資料,被設計為支援快速聚合和最小的存儲空間需求。通過使用hbase作為底層存儲層,opentsdb很好的支援分布與系統可靠性的特點。使用者不與hbase的直接互動;而資料寫入系統是通過時間序列的守護程序(tsd)來管理,它可以友善的擴充用于需要高速處理資料量的應用場景。有一些預制連接配接器将資料釋出到opentsdb,并且支援從ruby,python以及其他語言的用戶端讀取資料。opentsdb并不擅長互動式圖形處理,但可以和第三方工具內建。如果你已經在使用hbase和想要一個簡單的方法來存儲事件資料,opentsdb也許正好适合你。

2015 Bossie評選:最佳開源大資料工具

大家最喜歡的筆記應用程式都走了。jupyter是“ipython”剝離出來成為一個獨立的軟體包的語言無關的部分。雖然jupyter本身是用python寫的,該系統是子產品化的。現在你可以有一個和ipython一樣的界面,在筆記本電腦中友善共享代碼,使得文檔和資料可視化。至少已經支援50個語言的核心,包括lisp,r,f #,perl,ruby,scala等。事實上即使ipython本身也隻是一個jupyter python子產品。通過repl(讀,評價,列印循環)語言核心通信是通過協定,類似于nrepl或slime。很高興看到這樣一個有用的軟體,得到了顯著的非營利組織資助,以進一步發展,如并行執行和多使用者筆記本應用。

2015 Bossie評選:最佳開源大資料工具

zeppelin是一個apache的孵化項目. 一個基于web的筆記本,支援互動式資料分析。你可以用sql、scala等做出資料驅動的、互動、協作的文檔。(類似于ipython notebook,可以直接在浏覽器中寫代碼、筆記并共享)。一些基本的圖表已經包含在zeppelin中。可視化并不隻限于sparksql查詢,後端的任何語言的輸出都可以被識别并可視化。 zeppelin 提供了一個 url 用來僅僅展示結果,那個頁面不包括 zeppelin 的菜單和按鈕。這樣,你可以輕易地将其作為一個iframe內建到你的網站。zeppelin還不成熟。我想把一個示範,但找不到一個簡單的方法來禁用“shell”作為一個執行選項(在其他事情)。然而,它已經看起來的視覺效果比ipython筆記本應用更好,apache zeppelin (孵化中) 是 apache2 許可軟體。提供100%的開源。

原文釋出時間為:2015-10-23

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号