標籤:開源 評獎 hive hbase 大資料
2015-10-10 張曉東 東方雲洞察東方雲洞察
InfoWorld在分布式資料處理、流式資料分析、機器學習以及大規模資料分析領域精選出了2015年的開源工具獲獎者,下面我們來簡單介紹下這些獲獎的技術工具。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/B0/wKiom1YmIgWzP1Q1AAHSXc4hokg426.jpg" title="bossies-2015-big-data-100613944-gallery.idge.jpg" alt="wKiom1YmIgWzP1Q1AAHSXc4hokg426.jpg" />
1. Spark
在Apache的大資料項目中,Spark是最火的一個,特別是像IBM這樣的重量級貢獻者的深入參與,使得Spark的發展和進步速度飛快。
與Spark產生最甜蜜的火花點仍然是在機器學習領域。去年以來DataFrames API取代SchemaRDD API,類似於R和Pandas的發現,使資料訪問比原始RDD介面更簡單。
Spark的新發展中也有新的為建立可重複的機器學習的工作流程,可擴充和可最佳化的支援各種儲存格式,更簡單的介面來訪問機器學習演算法,改進的叢集資源的監控和任務跟蹤。
在Spark1.5的預設情況下,TungSten記憶體管理器通過微調在記憶體中的資料結構布局提供了更快速的處理能力。最後,新的spark-packages.org網站上有超過100個第三方貢獻的連結庫擴充,增加了許多有用的功能。
2. Storm
Storm是Apache項目中的一個分散式運算架構項目,主要應用於流式資料即時處理領域。他基於低延時互動模式理念,以應對複雜的事件處理需求。和Spark不同,Storm可以進行單點隨機處理,而不僅僅是微批量任務,並且對記憶體的需求更低。在我的經驗中,他對於流式資料處理更有優勢,特別是當兩個資料來源之間的資料快速傳輸過程中,需要對資料進行快速處理的情境。
Spark掩蓋了很多Storm的光芒,但其實Spark在很多流失資料處理的應用情境中並不適合。Storm經常和Apache Kafka一起配合使用。
3. H2O
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的機器學習演算法。
4. Apex
Apex是一個企業級的大資料動態處理平台,即能夠支援即時的流式資料處理,也可以支援批量資料處理。它可以是一個YARN的原生程式,能夠支援大規模、可擴充、支援容錯方法的流式資料處理引擎。它原生的支援一般事件處理並保證資料一致性(精確一次處理、最少一次、最多一次)
以前DataTorrent公司開發的基於Apex的商業處理軟體,其代碼、文檔及架構設計顯示,Apex在支援DevOps方面能夠把應用開發清楚的分離,使用者代碼通常不需要知道他在一個流ApsaraVideo for Media Processing叢集中運行。
Malhar是一個相關項目,提供超過300種常用的實現共同的商務邏輯的應用程式模板。Malhar的連結庫可以顯著的減少開發Apex應用程式的時間,並且提供了串連各種儲存、檔案系統、訊息系統、資料庫的連接器和驅動程式。並且可以進行擴充或定製,以滿足個人業務的要求。所有的malhar組件都是Apache許可下使用。
5. Druid
Druid在今年二月轉為了商業友好的Apache許可證,是一個基於“事件流的混合引擎,能夠滿足OLAP解決方案。最初他主要應用於廣告市場的線上資料處理領域,德魯伊可以讓使用者基於時間序列資料做任意和互動的分析。一些關鍵的功能包括低延遲事件處理,快速彙總,近似和精確的計算。
Druid的核心是一個使用專門的節點來處理每個部分的問題自訂的資料存放區。即時分析基於即時管理(JVM)節點來處理,最終資料會儲存在曆史節點中負責老的資料。代理節點直接查詢即時和曆史節點,給使用者一個完整的事件資訊。測試表明50萬事件數目據能夠在一秒內處理完成,並且每秒處理能力可以達到100萬的峰值,Druid作為線上廣告處理、網路流量和其他的活動流的理想即時處理平台。
6. Flink
Flink的核心是一個事件流資料流程引擎。雖然表面上類似Spark,實際上Flink是採用不同的記憶體中處理方法的。首先,Flink從設計開始就作為一個流處理器。批處理只是一個具有開始和結束狀態的串流的特殊情況,Flink提供了API來應對不同的應用情境,無論是API(批處理)和資料流API。MapReduce的世界的開發人員們在面對DataSet處理API時應該有賓至如歸的感覺,並且將應用程式移植到Flink非常容易。在許多方面,Flink和Spark一樣,其的簡潔性和一致性使他廣受歡迎。像Spark一樣,Flink是用Scala寫的。
7. Elasticsearch
Elasticsearch是基於Apache Lucene搜尋分布式檔案伺服器。它的核心,Elasticsearch基於JSON格式的近乎即時的構建了資料索引,能夠實現快速全文檢索索引功能。結合開源Kibana BI顯示工具,您可以建立令人印象深刻的資料視覺效果介面。
Elasticsearch易於設定和擴充,他能夠自動根據需要使用新的硬體來進行分區。他的查詢文法和SQL不太一樣,但它也是大家很熟悉的JSON。大多數使用者不會在那個層級進行資料互動。開發人員可以使用原生JSON-over-HTTP介面或常用的幾個開發語言進行互動,包括Ruby,Python,PHP,Perl,Java,JavaScript等。
8. SlamData
如果你正在尋找一個方便使用的工具,能理解最新流行的NoSQL資料的視覺化檢視,那麼你應該看一看SlamData。SlamData允許您用熟悉的SQL文法來進行JSON資料的巢狀查詢,不需要轉換或文法改造。
該技術的主要特點之一是它的連接器。從MongoDB,HBase,Cassandra和Apache的Spark,SlamData同大多數業界標準的外部資料源可以方便的進行整合,並進行資料轉換和分析資料。你可能會問:“我不會有更好的資料池或資料倉儲工具嗎?請認清這是在NoSQL領域。
9. Drill
Drill是一種用於大型資料集的互動分析的分布式系統,由Google的Dremel催生。Drill專為嵌套資料的低延遲分析設計,它有一個明確的設計目標,靈活的擴充到10000台伺服器來處理查詢記錄資料,並支援兆層級的資料記錄。
嵌套的資料可以從各種資料來源獲得的(如HDFS,HBase,Amazon S3,和Blobs)和多種格式(包括JSON,Avro,和buffers),你不需要在讀取時指定一個模式(“讀時模式”)。
Drill使用ANSI 2003 SQL的查詢語言為基礎,所以資料工程師是沒有學習壓力的,它允許你串連查詢資料並跨多個資料來源(例如,串連HBase表和在HDFS中的日誌)。最後,Drill提供了基於ODBC和JDBC介面以和你所喜歡的BI工具對接。
10. HBASE
HBase在今年的裡程碑達到1.X版本並持續改善。像其他的非關係型的分布式資料存放區一樣,HBase的查詢結果反饋非常迅速,因此擅長的是經常用於後台搜尋引擎,如易趣網,博科和雅虎等網站。作為一個穩定的、成熟的軟體產品,HBase新鮮的功能並不是經常出現,但這種穩定性往往是企業最關心的。
最近的改進包括增加地區伺服器改進高可用性,滾動升級支援,和YARN的相容性提升。在他的特性更新方麵包括掃描器更新,保證提高效能,使用HBase作為流媒體應用像Storm和Spark持久儲存的能力。HBase也可以通過Phoenix項目來支援SQL查詢,其SQL相容性在穩步提高。Phoenix最近增加了一個Spark連接器,添加了自訂函數的功能。
11. Hive
隨著Hive過去多年的發展,逐步成熟,今年發布了1.0正式版本,它用於基於SQL的資料倉儲領域。目前基金會主要集中在提升效能、可擴充性和SQL相容性。最新的1.2版本顯著的提升了ACID語意相容性、跨資料中心複製,以及以成本為基礎的最佳化器。
Hive1.2也帶來了改進的SQL的相容性,使組織利用它更容易的把從現有的資料倉儲通過ETL工具進行轉移。在規劃中講主要改進:以記憶體緩衝為核心的速度改進 LLAP,Spark的機器學習庫的整合,提高SQL的前嵌套子查詢、中間類型支援等。
12. Kylin
Kylin是eBay開發的用於處理非常大量資料的OLAP分析系統,他使用標準的SQL文法,和很多資料分析產品很像。Kylin使用Hive和MR來構建立方體,Hive用作預連結,MR用作預彙總,HDFS用來儲存構建立方體時的中間檔案,HBase用來儲存立方體,HBase的coprocessor(副處理器)用來響應查詢。
像大多數其他的分析應用一樣,Kylin支援多種存取方法,包括JDBC,ODBC API進行編程訪問以及REST API介面。
13. CDAP
CDAP(Cask Data Access Platform)是一個在Hadoop之上啟動並執行架構,抽象了建造和運行大資料應用的複雜性。CDAP圍繞兩個核心概念:資料和應用程式。CDAP資料集是資料的邏輯展現,無論底層儲存層是什麼樣的;CDAP提供即時資料流處理能力。
應用程式使用CDAP服務來處理諸如分散式交易和服務發現等應用情境,避免程式開發人員淹沒在Hadoop的底層細節中。CDAP內建的資料攝取架構和一些預置的應用和一些通用的“包”,例如ETL和網站分析,支援測試,調試和安全等。和大多數原商業(閉源)項目開源一樣,CDAP具有良好的文檔,教程,和例子。
14. Ranger
安全一直是Hadoop的一個痛處。它不是說(像是經常報道)Hadoop是“不安全”或“不安全”。事實是,Hadoop有很多的安全功能,雖然這些安全功能都不太強大。我的意思是,每一個組件都有它自己的身分識別驗證和授權實施,這與其他的平台沒有整合。
2015年5月,Hortonworks收購XA /安全,隨後經過了改名後,我們有了Ranger。Ranger使得許多Hadoop的關鍵組件處在一個保護傘下,它允許你設定一個“策略”,把你的Hadoop安全綁定到到您現有的ACL基於活動目錄的身分識別驗證和授權體系下。Ranger給你一個地方管理Hadoop的存取控制,通過一個漂亮的頁面來做管理、審計、加密。
15. Mesos
Mesos提供了高效、跨分布式應用程式和架構的資源隔離和共用,支援Hadoop、 MPI、Hypertable、Spark等。
Mesos是Apache孵化器中的一個開源項目,使用ZooKeeper實現容錯複製,使用Linux Containers來隔離任務,支援多種資源計劃分配(記憶體和CPU)。提供Java、Python和C++ APIs來開發新的並行應用程式,提供基於Web的使用者介面來提查看叢集狀態。
Mesos應用程式(架構)為叢集資源協調兩級調度機制,所以寫一個Mesos應用程式對程式員來說感覺不像是熟悉的體驗。雖然Mesos是新的項目,成長卻很快。
16. NiFi
Apache NiFi0.2.0 發布了,該項目目前還處於 Apache 基金會的孵化階段。Apache NiFi 是一個便於使用、功能強大而且可靠的資料處理和分發系統。Apache NiFi 是為資料流設計。它支援高度可配置的指示圖的資料路由、轉換和系統中介邏輯。
ApacheNiFi是由美國過國家安全域(NSA)貢獻給Apache基金會的開源項目,其設計目標是自動化系統間的資料流。基於其工作流程式的編程理念,NiFi非常便於使用,強大,可靠及高可配置。兩個最重要的特性是其強大的使用者介面及良好的資料回溯工具。
NiFi的使用者介面允許使用者在瀏覽器中直觀的理解並與資料流舉行互動,更快速和安全的進行迭代。
其資料回溯特性允許使用者查看一個對象如何在系統間流轉,回放以及可視化關鍵步驟之前之後發生的情況,包括大量複雜的圖式轉換,fork,join及其他動作等。
另外,NiFi使用基於組件的擴充模型以為複雜的資料流快速增加功能,開箱即用的組件中處理檔案系統的包括FTP,SFTP及HTTP等,同樣也支援HDFS。
NiFi獲得來來自業界的一致好評,包括HortonworksCEO,Leverage CTO及Prescient Edge首席系統架構師等。
17. Kafka
在大資料領域,Kafka已經成為分布式發布訂閱訊息的事實標準。它的設計允許代理支援成千上萬的客戶在資訊輸送量告訴處理時,同時通過分布式提交日誌保持耐久性。Kafka是通過在HDFS系統上儲存單個記錄檔,由於HDFS是一個分布式的儲存系統,使資料的冗餘拷貝,因此Kafka自身也是受到良好保護的。
當消費者想讀訊息時,Kafka在中央日誌中尋找其位移量並發送它們。因為訊息沒有被立即刪除,增加消費者或重發曆史資訊不產生額外消耗。Kafka已經為能夠每秒發送2百萬個訊息。儘管Kafka的版本號碼是sub-1.0,但是其實Kafka是一個成熟、穩定的產品,使用在一些世界上最大的叢集中。
18 OpenTSDB
opentsdb是建立在時間序列基礎上的HBase資料庫。它是專為分析從應用程式,行動裝置,網路裝置,和其他硬體裝置收集的資料。它自訂HBase架構用於儲存時間序列資料,被設計為支援快速彙總和最小的儲存空間需求。
通過使用HBase作為底層儲存層,opentsdb很好的支援分布與系統可靠性的特點。使用者不與HBase的直接互動;而資料寫入系統是通過時間序列的守護進程(TSD)來管理,它可以方便的擴充用於需要高速處理資料量的應用情境。有一些預製連接器將資料發布到opentsdb,並且支援從Ruby,Python以及其他語言的用戶端讀取資料。opentsdb並不擅長互動式圖形處理,但可以和第三方工具整合。如果你已經在使用HBase和想要一個簡單的方法來儲存事件數目據,opentsdb也許正好適合你。
19. Jupiter
大家最喜歡的筆記應用程式都走了。jupyter是“IPython”剝離出來成為一個獨立的軟體包的語言無關的部分。雖然jupyter本身是用Python寫的,該系統是模組化的。現在你可以有一個和iPython一樣的介面,在膝上型電腦中方便共用代碼,使得文檔和資料視覺效果。
至少已經支援50個語言的核心,包括Lisp,R,F #,Perl,Ruby,Scala等。事實上即使IPython本身也只是一個jupyter Python模組。通過REPL(讀,評價,列印迴圈)語言核心通訊是通過協議,類似於nrepl或Slime。很高興看到這樣一個有用的軟體,得到了顯著的非營利組織資助,以進一步發展,如並存執行和多使用者筆記本應用。
20. Zeppelin
Zeppelin是一個Apache的孵化項目. 一個基於web的筆記本,支援互動式資料分析。你可以用SQL、Scala等做出資料驅動的、互動、協作的文檔。(類似於ipython notebook,可以直接在瀏覽器中寫代碼、筆記並共用)。
一些基本的圖表已經包含在Zeppelin中。可視化並不只限於SparkSQL查詢,後端的任何語言的輸出都可以被識別並可視化。 Zeppelin 提供了一個 URL 用來僅僅展示結果,那個頁面不包括 Zeppelin 的菜單和按鈕。這樣,你可以輕易地將其作為一個iframe整合到你的網站。
Zeppelin還不成熟。我想把一個示範,但找不到一個簡單的方法來禁用“Shell”作為一個執行選項(在其他事情)。然而,它已經看起來的視覺效果比IPython筆記本應用更好,Apache Zeppelin (孵化中) 是 Apache2 許可軟體。提供100%的開源。
650) this.width=650;" src="http://mmbiz.qpic.cn/mmbiz/eazBlLcahYCYFSx3f9XmW68JoN2aiaia9zxsNiboGWUfJWSP5LiculYia0DLP31f8pmzbe0wfYJTcQmcIPFy0Vt4sAA/640?tp=webp&wxfrom=5&wx_lazy=1" style="margin:0px;padding:0px;border:0px;height:auto;width:171px;" alt="640?tp=webp&wxfrom=5&wx_lazy=1" />掃描二維碼關注【東方雲洞察】公眾號
即時瞭解深度的公用雲端市場分析和洞察結果!點擊右上方,在彈出的菜單中發送給朋友、分享到朋友圈。請在公眾號搜尋並關註:DongCloudInsight 或 東方雲洞察。需要點對點交流請加:jackyzhang523
協助您瞭解公用雲端相關的深度洞察結果。帶來極具深度和最新鮮的:雲市場分析、雲機會洞察分析、雲重大事件快評、雲雜談、雲論壇資訊,以及公用雲端領域最高端的CEO面對面深度研討。
本文出自 “東方雲洞察” 部落格,請務必保留此出處http://2368606.blog.51cto.com/2358606/1704650
【大資料】2015 Bossie評選-20個最佳開源大資料技術