Bossies 2016:最佳開源大數據工具

導讀 在今年的 Bossie開源大數據工具中,你會發現最新最好的方法是利用大型集羣進行索引、搜索、圖形處理、流處理、結構化查詢、分佈式OLAP和機器學習,因爲衆多處理器和RAM可降低工作量級。

處理大數據可能會遇到各種各樣的問題,目前沒有任何工具可以完美地處理這一切——即便是Spark。

Bossies 2016:最佳開源大數據工具

Bossie獎是英文IT網站InfoWorld針對開源軟件頒發的年度獎項,根據這些軟件對開源界的貢獻,以及在業界的影響力評判獲獎對象。本次InfoWorld評選出了13款最佳開源大數據工具,Spark、Beam都名列榜單之上。

Spark

Spark是寫在Scala中的內存分佈式處理框架,在Apache的大數據項目中非常火爆。隨着Spark 2.0版本的發佈,它的優勢似乎在延續。除了SQL語句實現等基礎功能,新版本的Spark在性能上也大幅提升。Spark 2.0在DataFrames的基礎上進一步完善,比如新的Structured Streaming API 等。這一切改變使Spark程序員的操作更清楚簡單,但Structured Streaming 可能會有較大改變。

從RDD的批處理進程轉變爲無邊界的DataFrame概念,Structured Streaming將使某些特定場景的流處理(比如捕獲數據變更和位置更新)更容易實現,允許DataFrame本身的窗口時間序列,而不是進入流管道的新事件,這是Spark流式處理長期以來的痛點,尤其是與Apache Flink和Apache Beam相比,Saprk 2.0終於彌補了這塊空白。如果你至今沒有學會Spark,你就OUT了。

Beam

Google Beam是Apache的孵化器項目,提供了一種不需要每次改變引擎都重寫代碼的方式。目前看來,Spark可能是未來的編程模型,但如果不是呢?此外,如果你對一些擴展功能和Google DataFlow性能感興趣,你可以自己在Beam平臺編寫代碼並在DataFlow,Spark甚至是Flink上運行。我們很喜歡即寫即運行的想法,但Beam不支持類似REPL的開發者功能,但未來它將是一款不錯的分析工具。

TensorFlow

TensorFlow是Google針對機器學習提出的開源軟件,無論是字符識別,圖像識別,自然語言處理還是其他複雜的機器學習應用,TensorFlow可能都是你的首選。

TensorFlow是用C++寫的,但支持Python。此外,它最終會呈現出一個十分方便的方式運行分佈式代碼,優化GPS和CPU的並行代碼。這將是下一個大數據工具,未來將會持續進行討論。

Solr

作爲Hadoop重量級廠商Hortonworks,Cloudera以及MapR等的選擇,Apache Solr爲企業帶來可信任的、成熟的搜索引擎技術。Solr基於Apache Lucene引擎,這兩個項目共享於許多社區。你可以在類似Instagram,Zappos,Comcast和DuckDuckGO等企業場景背後發現 Solr的身影。

Solr中的SolrCloud,是利用Apache ZooKeeper創建可伸縮、分佈式的搜索和索引解決方案,並且高度抵禦分佈式系統類似腦裂等常見問題。伴隨着可靠性,SolrCloud的規模可按需變化,並且它足夠成熟可以處理數十億文檔之間的大量查詢請求。

Elasticsearch

Elasticsearch同樣基於Apache Lucene引擎,是針對現在的REST API 和JSON文檔概念的開源分佈式搜索引擎。Elasticsearch集羣數據從GB向PB級擴展十分容易,只需要很低的處理開銷。

作爲ELK堆棧的一部分(Elasticsearch,Logastash和Kibana都是由Elasticsearch創造者Elastic創造的),Elasticsearch已經發現了它作爲開源Splunk替代日誌分析的殺手級應用。類似於 Nteflix,Facebook,Microsoft以及Linkedln公司在日誌基礎架構上會選擇運行大型Elasticsearch集羣。此外,ELK堆棧正在尋找其他方向,比如欺詐檢測和特定領域的業務分析,這將使Elasticsearch在更多企業得到使用。

SlamData

未來對SlamData來說是一場長途旅行。爲什麼會選擇使用MongoDB作爲分析解決方案呢?可能因爲這是一個可操作數據庫。然而,正如 SlamData的Jeff Carr所言,它並不瘋狂。有很多MongoDB方向新的公司和年輕的開發者產生,如果你使用MongoDB數據存儲,並且需要運行基礎的分析,你要創建整個Hadoop集羣或者其他設施報告嗎?SlamData允許用熟悉的SQL語法來進行JSON數據的嵌套查詢,不需要轉換或語法改造。

該技術的主要特點之一是它的連接器。從MongoDB,HBase,Cassandra和Apache的Spark,SlamData同大多數業界標準的外部數據源可以方便的進行整合,並進行數據轉換和分析數據。SlamData有基於SQL的引擎,本質上說和MongoDB類似,但不像MongoDB 有自己的解決方案,SlamData並沒有吸納PostgreSQL的所有數據,並稱之爲BI連接。既然核心技術是開源的,我認爲可以期待未來有更多公司採用其技術不斷完善該領域產品。

Impala

Apache Impala是針對Hadoop上SQL處理的Cloudera引擎。如果你正在使用Hive,Impala是一種不需要你重複考慮任何事情就可以達到查詢性能的簡單方法。基於行的分佈式大規模並行處理系統,Impala相比於在Spark上組合Hive更加成熟和徹底。即便沒有太多的調優,Impala 還是可以提高性能,並且一定比你付出同樣努力使用Tez的效果要好。如果你在HDFS的文件之上需要使用SQL,Impala可能是最好的選擇。

Kylin

如果你正在做N維立方體分析和現代大數據框架,Kylin很對你的口。如果你從沒聽說過OLAP多維數據集,沒關係。如果你正在考慮RDBMS中存在一對多關係表,但有一部分需要計算字段,你可以選擇在SQL裏進行查詢和計算,但是這太緩慢了。當我們的關係和計算量更多更復雜時,又該怎麼辦呢?不是平面的表,把它們想象成立方體組成的若干塊,每一塊事先預計價值。你可能有N維或多維數據。Kylin當然不是第一個實現分佈式OLAP的,但它是最先進的技術之一,並且目前可以下載並安裝在雲端。

Kafka

Kafka是非常標準的分佈式發佈和訂閱標準,現在已經用於世界上一些比較大的系統,Kafka的消息傳遞更加可靠,儘管與之前的系統不同,通過分佈式提交日誌保持耐久性。然而,Kafka的分區流處理支持高速數據加載和大量用戶。比較諷刺的是,儘管所有這些功能已經足夠讓人驚訝了,但Kafka十分容易安裝部署,這在大數據和消息傳遞規則裏是個例外。

StreamSets

你可能有一些數據需要處理,這些數據可能在文件夾裏(比如網絡日誌)或者正在Kafka上傳遞,雖然有很多方法可以實現,但使用StreamSets可以在最短的時間內做你想做的任何事情,它比其他解決方案更加完整。也有越來越多的強壯的連接器 (HDFS,Hive,Kafka,Kinesis),REST API,和GUI來監控數據流動,這也正是他們一直在努力做的事情。

Titan

直到人們意識到使用圖表進行存儲非常有用,圖形數據庫纔開始火了起來。一個攜帶所有附件可插拔式存儲的複雜數據庫,本質上是指高度可分配的數據庫列族。與其他圖形數據庫相比,Titan可以擴展。與嚴格的圖形分析框架相比,Titan可以提供更好的性能,相比於Giraph,不需要使用內存資源或者時間重構圖形,相當於GiraphX,更不用說潛在的優秀的數據完整性特徵。

Zeppelin

無論你是一個只想要美觀圖形的開發者,還是想成爲數據科學家,Zeppelin可能都適合你,它使用似曾相識的類似於IPython的筆記本概念,允許通過寫標記,嵌入式代碼,執行代碼,它存在於Spark或其他引擎中,通過生成文本,表格或者圖表形式輸出。Zeppelin仍然缺乏一些特性和多功能DataBrick,但它正在穩步前進。如果你使用Spark,Zeppelin就存在於工具包中。


本文轉載自:http://www.linuxprobe.com/bossies-2016.html

免費提供最新Linux技術教程書籍,爲開源技術愛好者努力做得更多更好:http://www.linuxprobe.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章