大數據相關開源項目及組件彙總

前言

花了一點時間,整理了大數據相關開源項目、組件和官網地址。按照實際應用功能的不同,分爲以下10個部分,並在目錄圖中進行歸納,後續章節的內容則是分別介紹各組件的背景及應用場景。

  1. 調度與管理服務
  2. 文件系統
  3. 數據蒐集
  4. 消息系統
  5. 內存技術
  6. 數據處理
  7. 查詢引擎
  8. 分析和報告工具
  9. 機器學習
  10. 開發平臺

目錄圖:

類別 開源項目
調度與管理服務 Azkaban 、YARN 、Mesos、Ambari 、ZooKeeper 、Thrift 、Chukwa
文件系統 Lustre 、HDFS 、GlusterFS 、Alluxio 、Ceph、PVFS 、QFS
數據蒐集 Logstash 、Scribe 、Flume
消息系統 RabbitMQ 、ActiveMQ 、ActiveMQ 、Kafka
內存技術 Terracotta 、Ignite 、GemFire 、GridGain
數據處理 Spark,Kinesis ,Hadoop ,Flink ,Storm,HaLoop
查詢引擎 Presto ,Drill ,Phoenix ,Hive ,SparkSQL,Tajo ,Impala ,Elasticsearch ,Solr ,Shark ,Lucene
分析和報告工具 Kettle,Kylin ,Kibana ,Druid ,KNIME ,Zeppelin ,Talend ,Splunk ,Pentaho ,Jaspersoft ,SpagoBI
機器學習 Tensorflow,Theano,Keras,DSSTNE,Lasagne,Torch,mxnet,DL4J,Cognitive Toolkit,Caffe,Hivemall ,RapidMiner ,Mahout
開發平臺 Lumify ,Lingual ,Beam ,Cascading ,HPCC

1:調度與管理服務

大數據調度與管理服務主要包括以下相關軟件:
Azkaban 、YARN 、Mesos、Ambari 、ZooKeeper 、Thrift 、Chukwa 。以下將分別介紹。

1.1:Azkaban

Azkaban 是一款基於Java編寫的任務調度系統任務調度,來自LinkedIn公司,用於管理他們的Hadoop批處理工作流。Azkaban根據工作的依賴性進行排序,提供友好的Web用戶界面來維護和跟蹤用戶的工作流程。
Azkaban官網

1.2:YARN

YARN 是一種新的Hadoop資源管理器,它是一個通用資源管理系統,可爲上層應用提供統一的資源管理和調度,解決了舊MapReduce框架的性能瓶頸。它的基本思想是把資源管理和作業調度/監控的功能分割到單獨的守護進程。

Hadoop官網中關於Yarn的介紹

1.3:Mesos

Mesos 是由加州大學伯克利分校的AMPLab首先開發的一款開源羣集管理軟件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等架構。對數據中心而言它就像一個單一的資源池,從物理或虛擬機器中抽離了CPU,內存,存儲以及其它計算資源, 很容易建立和有效運行具備容錯性和彈性的分佈式系統。
Mesos 官網

1.4:Ambari

Ambari 作爲Hadoop生態系統的一部分,提供了基於Web的直觀界面,可用於配置、管理和監控Hadoop集羣。目前已支持大多數Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。
Ambari 官網

1.5:ZooKeeper

ZooKeeper 是一個分佈式的應用程序協調服務,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的工具,讓Hadoop集羣裏面的節點可以彼此協調。ZooKeeper現在已經成爲了 Apache的頂級項目,爲分佈式系統提供了高效可靠且易於使用的協同服務。
ZooKeeper 官網

1.6:Thrift

Thrift 在2007年facebook提交Apache基金會將Thrift作爲一個開源項目,對於當時的facebook來說創造thrift是爲了解決facebook系統中各系統間大數據量的傳輸通信以及系統之間語言環境不同需要跨平臺的特性。
Thrift 官網

1.7:Chukwa

Chukwa 是監測大型分佈式系統的一個開源數據採集系統,建立在HDFS/MapReduce框架之上並繼承了Hadoop的可伸縮性和可靠性,可以收集來自大型分佈式系統的數據,用於監控。它還包括靈活而強大的顯示工具用於監控、分析結果。
Chukwa 官網

2:文件系統

大數據文件系統主要包括以下相關軟件:
Lustre 、HDFS 、GlusterFS 、Alluxio 、Ceph、PVFS 、QFS,以下將分別介紹。

2.1:Lustre

Lustre 是一個大規模的、安全可靠的、具備高可用性的集羣文件系統,它是由SUN公司開發和維護的。該項目主要的目的就是開發下一代的集羣文件系統,目前可以支持超過10000個節點,數以PB的數據存儲量。
Lustre 官網

2.2:HDFS

HDFS Hadoop Distributed File System,簡稱HDFS,是一個分佈式文件系統。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。
Hadoop官網中關於HDFS的介紹

2.3:GlusterFS

GlusterFS 是一個集羣的文件系統,支持PB級的數據量。GlusterFS 通過RDMA和TCP/IP方式將分佈到不同服務器上的存儲空間彙集成一個大的網絡化並行文件系統。
GlusterFS 官網

2.4:Alluxio

Alluxio 前身是Tachyon,是以內存爲中心的分佈式文件系統,擁有高性能和容錯能力,能夠爲集羣框架(如Spark、MapReduce)提供可靠的內存級速度的文件共享服務。
Alluxio 官網

2.5:Ceph

Ceph 是新一代開源分佈式文件系統,主要目標是設計成基於POSIX的沒有單點故障的分佈式文件系統,提高數據的容錯性並實現無縫的複製。
Ceph 官網

2.6:PVFS

PVFS 是一個高性能、開源的並行文件系統,主要用於並行計算環境中的應用。PVFS特別爲超大數量的客戶端和服務器端所設計,它的模塊化設計結構可輕鬆的添加新的硬件和算法支持。
PVFS 官網

2.7:QFS

QFS Quantcast File System (QFS) 是一個高性能、容錯好、分佈式的文件系統,用於開發支持 MapReduce處理或者需要順序讀寫大文件的應用。
QFS 官網

3:數據蒐集

大數據數據蒐集主要包括以下相關軟件:Logstash 、Scribe 、Flume ,以下將分別介紹。

3.1:Logstash

Logstash 是一個應用程序日誌、事件的傳輸、處理、管理和搜索的平臺。可以用它來統一對應用程序日誌進行收集管理,提供了Web接口用於查詢和統計。
Logstash 官網

3.2:Scribe

Scribe是Facebook開源的日誌收集系統,它能夠從各種日誌源上收集日誌,存儲到一箇中央存儲系統(可以是NFS,分佈式文件系統等)上,以便於進行集中統計分析處理。
Scribe相關信息

3.3:Flume

Flume 是Cloudera提供的一個高可用的、高可靠的、分佈式的海量日誌採集、聚合和傳輸的系統。Flume支持在日誌系統中定製各類數據發送方,用於收集數據。同時,Flume支持對數據進行簡單處理,並寫入各種數據接受方(可定製)。
Flume 官網

4:消息系統

大數據消息系統主要包括以下相關軟件:
RabbitMQ 、ActiveMQ 、ActiveMQ 、Kafka ,以下將分別介紹。

4.1:RabbitMQ

RabbitMQ 是一個受歡迎的消息代理系統,通常用於應用程序之間或者程序的不同組件之間通過消息來進行集成。RabbitMQ提供可靠的應用消息發送、易於使用、支持所有主流操作系統、支持大量開發者平臺。
RabbitMQ 官網

4.1:ActiveMQ

ActiveMQ 是Apache出品,號稱“最流行的,最強大”的開源消息集成模式服務器。ActiveMQ特點是速度快,支持多種跨語言的客戶端和協議,其企業集成模式和許多先進的功能易於使用,是一個完全支持JMS1.1和J2EE 1.4規範的JMS Provider實現。
ActiveMQ 官網

4.3:Kafka

Kafka 是一種高吞吐量的分佈式發佈訂閱消息系統,它可以處理消費者規模網站中的所有動作流數據,目前已成爲大數據系統在異步和分佈式消息之間的最佳選擇。
Kafka 官網

5:內存技術

大數據內存技術主要包括以下相關軟件:
Terracotta 、Ignite 、GemFire 、GridGain 。以下將分別介紹。

5.1:Terracotta

Terracotta 聲稱其BigMemory技術是“世界上首屈一指的內存中數據管理平臺”,支持簡單、可擴展、實時消息,聲稱在190個國家擁有210萬開發人員,全球1000家企業部署了其軟件。
Terracotta 官網

5.2:Ignite

Ignite 是一種高性能、整合式、分佈式的內存中平臺,可用於對大規模數據集執行實時計算和處理,速度比傳統的基於磁盤的技術或閃存技術高出好幾個數量級。該平臺包括數據網格、計算網格、服務網格、流媒體、Hadoop加速、高級集羣、文件系統、消息傳遞、事件和數據結構等功能。
Ignite 官網

5.3:GemFire

GemFire Pivotal宣佈它將開放其大數據套件關鍵組件的源代碼,其中包括GemFire內存中NoSQL數據庫。它已向Apache軟件基金會遞交了一項提案,以便在“Geode”的名下管理GemFire數據庫的核心引擎。
GemFire 官網

5.4:GridGain

GridGain 由Apache Ignite驅動的GridGrain提供內存中數據結構,用於迅速處理大數據,還提供基於同一技術的Hadoop加速器。
GridGain 官網

6:數據處理

數據處理主要包括以下相關軟件技術:
Spark,Kinesis ,Hadoop ,Flink ,Storm,HaLoop

6.1:Spark

Spark 是一個高速、通用大數據計算處理引擎。擁有Hadoop MapReduce所具有的優點,但不同的是Job的中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapReduce的算法。它可以與Hadoop和Apache Mesos一起使用,也可以獨立使用
Spark 官網

6.2:Kinesis

Kinesis 可以構建用於處理或分析流數據的自定義應用程序,來滿足特定需求。Amazon Kinesis Streams 每小時可從數十萬種來源中連續捕獲和存儲數TB數據,如網站點擊流、財務交易、社交媒體源、IT日誌和定位追蹤事件。
Kinesis Github

6.3:Hadoop

Hadoop 是一個開源框架,適合運行在通用硬件,支持用簡單程序模型分佈式處理跨集羣大數據集,支持從單一服務器到上千服務器的水平scale up。Apache的Hadoop項目已幾乎與大數據劃上了等號,它不斷壯大起來,已成爲一個完整的生態系統,擁有衆多開源工具面向高度擴展的分佈式計算。高效、可靠、可伸縮,能夠爲你的數據存儲項目提供所需的YARN、HDFS和基礎架構,並且運行主要的大數據服務和應用程序。
Hadoop官網

6.4:Spark Streaming

Spark Streaming 實現微批處理,目標是很方便的建立可擴展、容錯的流應用,支持Java、Scala和Python,和Spark無縫集成。Spark Streaming可以讀取數據HDFS,Flume,Kafka,Twitter和ZeroMQ,也可以讀取自定義數據。

6.5:Trident

Trident 是對Storm的更高一層的抽象,除了提供一套簡單易用的流數據處理API之外,它以batch(一組tuples)爲單位進行處理,這樣一來,可以使得一些處理更簡單和高效。
Spark Streaming官網介紹

6.6:Flink

Flink 於今年躋身Apache頂級開源項目,與HDFS完全兼容。Flink提供了基於Java和Scala的API,是一個高效、分佈式的通用大數據分析引擎。更主要的是,Flink支持增量迭代計算,使得系統可以快速地處理數據密集型、迭代的任務。
Flink 官網

6.7:Samza

Samza 出自於LinkedIn,構建在Kafka之上的分佈式流計算框架,是Apache頂級開源項目。可直接利用Kafka和Hadoop YARN提供容錯、進程隔離以及安全、資源管理。
Samza 官網

6.8:Storm

Storm是Twitter開源的一個類似於Hadoop的實時數據處理框架。編程模型簡單,顯著地降低了實時處理的難度,也是當下最人氣的流計算框架之一。與其他計算框架相比,Storm最大的優點是毫秒級低延時。
Storm官網

6.9:Yahoo S4

Yahoo S4 (Simple Scalable Streaming System)是一個分佈式流計算平臺,具備通用、分佈式、可擴展的、容錯、可插拔等特點,程序員可以很容易地開發處理連續無邊界數據流(continuous unbounded streams of data)的應用。它的目標是填補複雜專有系統和麪向批處理開源產品之間的空白,並提供高性能計算平臺來解決併發處理系統的複雜度。
Yahoo S4 官網

6.10:HaLoop

HaLoop 是一個Hadoop MapReduce框架的修改版本,其目標是爲了高效支持 迭代,遞歸數據 分析任務,如PageRank,HITs,K-means,sssp等。

7:查詢引擎

查詢引擎主要包括以下相關軟件技術:
Presto ,Drill ,Phoenix ,Hive ,SparkSQL,Tajo ,Impala ,Elasticsearch ,Solr ,Shark ,Lucene

7.1: Presto

Presto 是一個開源的分佈式SQL查詢引擎,適用於交互式分析查詢,可對250PB以上的數據進行快速地交互式分析。Presto的設計和編寫是爲了解決像Facebook這樣規模的商業數據倉庫的交互式分析和處理速度的問題。Facebook稱Presto的性能比諸如Hive和MapReduce要好上10倍有多。
Presto -github

7.2: Drill

Drill 於2012年8月份由Apache推出,讓用戶可以使用基於SQL的查詢,查詢Hadoop、NoSQL數據庫和雲存儲服務。它能夠運行在上千個節點的服務器集羣上,且能在幾秒內處理PB級或者萬億條的數據記錄。它可用於數據挖掘和即席查詢,支持一系列廣泛的數據庫,包括HBase、MongoDB、MapR-DB、HDFS、MapR-FS、亞馬遜S3、Azure Blob Storage、谷歌雲存儲和Swift。
Drill 官網

7.3: Phoenix

Phoenix 是一個Java中間層,可以讓開發者在Apache HBase上執行SQL查詢。Phoenix完全使用Java編寫,並且提供了一個客戶端可嵌入的JDBC驅動。Phoenix查詢引擎會將SQL查詢轉換爲一個或多個HBase scan,並編排執行以生成標準的JDBC結果集。
Phoenix 官網

7.4: Pig

Pig 是一種編程語言,它簡化了Hadoop常見的工作任務。Pig可加載數據、轉換數據以及存儲最終結果。Pig最大的作用就是爲MapReduce框架實現了一套shell腳本 ,類似我們通常熟悉的SQL語句。
Pig 官網

7.5: Hive

Hive 是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換爲MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
Hive 官網

7.6: SparkSQL

SparkSQL 的前身是Shark,SparkSQL拋棄原有Shark的代碼並汲取了一些優點,如內存列存儲(In-Memory Columnar Storage)、Hive兼容性等。由於擺脫了對Hive的依賴性,SparkSQL無論在數據兼容、性能優化、組件擴展方面都得到了極大的方便。
SparkSQL 官網

7.7: Stinger

Stinger 原來叫Tez,是下一代Hive,由Hortonworks主導開發,運行在YARN上的DAG計算框架。某些測試下,Stinger能提升10倍左右的性能,同時會讓Hive支持更多的SQL。
Stinger 官網

7.8: Tajo

Tajo 目的是在HDFS之上構建一個可靠的、支持關係型數據的分佈式數據倉庫系統,它的重點是提供低延遲、可擴展的ad-hoc查詢和在線數據聚集,以及爲更傳統的ETL提供工具。
Tajo 官網

7.9: Impala

Impala Cloudera聲稱,基於SQL的Impala數據庫是“面向Apache Hadoop的領先的開源分析數據庫”。它可以作爲一款獨立產品來下載,又是Cloudera的商業大數據產品的一部分。Cloudera Impala 可以直接爲存儲在HDFS或HBase中的Hadoop數據提供快速、交互式的SQL查詢。
Impala 官網

7.10: Elasticsearch

Elasticsearch 是一個基於Lucene的搜索服務器。它提供了一個分佈式、支持多用戶的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並作爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,能夠達到實時搜索、穩定、可靠、快速、安裝使用方便。
Elasticsearch 官網

7.11: Solr

Solr 基於Apache Lucene,是一種高度可靠、高度擴展的企業搜索平臺。知名用戶包括eHarmony、西爾斯、StubHub、Zappos、百思買、AT&T、Instagram、Netflix、彭博社和Travelocity。
Solr 官網

7.12: Shark

Shark 即Hive on Spark,本質上是通過Hive的HQL解析,把HQL翻譯成Spark上的RDD操作,然後通過Hive的metadata獲取數據庫裏的表信息,實際HDFS上的數據和文件,會由Shark獲取並放到Spark上運算。Shark的特點就是快,完全兼容Hive,且可以在shell模式下使用rdd2sql()這樣的API,把HQL得到的結果集,繼續在scala環境下運算,支持自己編寫簡單的機器學習或簡單分析處理函數,對HQL結果進一步分析計算。

7.13: Lucene

Lucene 基於Java的Lucene可以非常迅速地執行全文搜索。據官方網站聲稱,它在現代硬件上每小時能夠檢索超過150GB的數據,它擁有強大而高效的搜索算法。
Lucene 官網

8:分析和報告工具

分析和報告工具主要包括如下:
Kettle,Kylin ,Kibana ,Druid ,KNIME ,Zeppelin ,Talend ,Splunk ,Pentaho ,Jaspersoft ,SpagoBI

8.1: Kettle

Kettle 這是一個ETL工具集,它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什麼,而不是你想怎麼做。作爲Pentaho的一個重要組成部分,現在在國內項目應用上逐漸增多。
Kettle -github

8.2: Kylin

Kylin 是一個開源的分佈式分析引擎,提供了基於Hadoop的超大型數據集(TB/PB級別)的SQL接口以及多維度的OLAP分佈式聯機分析。最初由eBay開發並貢獻至開源社區。它能在亞秒內查詢巨大的Hive表。
Kylin 官網

8.3: Kibana

Kibana 是一個使用Apache 開源協議的Elasticsearch 分析和搜索儀表板,可作爲Logstash和ElasticSearch日誌分析的 Web 接口,對日誌進行高效的搜索、可視化、分析等各種操作。
Kibana 官網

8.4: Druid

Druid 是一個用於大數據實時查詢和分析的高容錯、高性能、分佈式的開源系統,旨在快速處理大規模的數據,並能夠實現快速查詢和分析。
Druid 官網

8.5: KNIME

KNIME 的全稱是“康斯坦茨信息挖掘工具”(Konstanz Information Miner),是一個開源分析和報表平臺。宣稱“是任何數據科學家完美的工具箱,超過1000個模塊,可運行數百個實例,全面的集成工具,以及先進的算法”。
KNIME 官網

8.6: Zeppelin

Zeppelin 是一個提供交互數據分析且基於Web的筆記本。方便你做出可數據驅動的、可交互且可協作的精美文檔,並且支持多種語言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
Zeppelin 官網

8.7: Talend

Talend Open Studio 是第一家針對的數據集成工具市場的ETL(數據的提取Extract、傳輸Transform、載入Load)開源軟件供應商。Talend的下載量已超過200萬人次,其開源軟件提供了數據整合功能。其用戶包括美國國際集團(AIG)、康卡斯特、電子港灣、通用電氣、三星、Ticketmaster和韋裏遜等企業組織。
Talend 官網

8.8: Splunk

Splunk 是機器數據的引擎。使用 Splunk 可收集、索引和利用所有應用程序、服務器和設備(物理、虛擬和雲中)生成的快速移動型計算機數據,從一個位置搜索並分析所有實時和歷史數據。
Splunk 官網

8.9: Pentaho

Pentaho 是世界上最流行的開源商務智能軟件,以工作流爲核心的、強調面向解決方案而非工具組件的、基於java平臺的商業智能(Business Intelligence)套件。包括一個web server平臺和幾個工具軟件:報表、分析、圖表、數據集成、數據挖掘等,可以說包括了商務智能的方方面面。
Pentaho 社區

8.10: Jaspersoft

Jaspersoft 提供了靈活、可嵌入的商業智能工具,用戶包括衆多企業組織:高朋、冠羣科技、美國農業部、愛立信、時代華納
Jaspersoft 官網

8.11: SpagoBI

SpagoBI Spago被市場分析師們稱爲“開源領袖”,它提供商業智能、中間件和質量保證軟件,另外還提供相應的Java EE應用程序開發框架。
SpagoBI 官網

9:機器學習

機器學習框架主要包括如下:
Tensorflow,Theano,Keras,DSSTNE,Lasagne,Torch,mxnet,DL4J,Cognitive Toolkit,Caffe,Hivemall ,RapidMiner ,Mahout

9.1: Tensorflow

Tensorflow是Google開源的一款深度學習工具,使用C++語言開發,上層提供Python API。在開源之後,在工業界和學術界引起了極大的震動,因爲TensorFlow曾經是著名的Google Brain計劃中的一部分,Google Brain項目的成功曾經吸引了衆多科學家和研究人員往深度學習這個“坑”裏面跳,這也是當今深度學習如此繁榮的重要原因。

9.2: Theano

Theano是老牌、穩定的庫之一。它是深度學習開源工具的鼻祖,由蒙特利爾理工學院時間開發於2008年並將其開源,框架使用Python語言開發。它是深度學習庫的發軔,許多在學術界和工業界有影響力的深度學習框架都構建在Theano之上,並逐步形成了自身的生態系統,這其中就包含了著名的Keras、Lasagne和Blocks。
Theano是底層庫,遵循Tensorflow風格。因此不適合深度學習,而更合適數值計算優化。它支持自動函數梯度計算,它有 Python接口 ,集成了Numpy,使得這個庫從一開始就成爲通用深度學習最常用的庫之一。

9.3: Keras

Keras是一個非常高層的庫,工作在Theano或Tensorflow(可配置)之上。此外,Keras強調極簡主義,你可以用寥寥可數的幾行代碼來構建神經網絡。在 這裏 ,您可以看到一個Keras代碼示例,與在Tensorflow中實現相同功能所需的代碼相比較。

9.4: DSSTNE

DSSTNE(Deep Scalable Sparse Tensor Network Engine,DSSTNE)是Amazon開源的一個非常酷的框架,由C++語言實現。但它經常被忽視。爲什麼?因爲,撇開其他因素不談,它並不是爲一般用途設計的。DSSTNE只做一件事,但它做得很好:推薦系統。正如它的官網所言,它不是作爲研究用途,也不是用於測試想法,而是爲了用於生產的框架。

9.5: Lasagne

Lasagne是一個工作在Theano之上的庫。它的任務是將深度學習算法的複雜計算予以簡單地抽象化,並提供一個更友好的 Python 接口。這是一個老牌的庫,長久以來,它是一個具備高擴展性的工具。在Ricardo看來,它的發展速度跟不上Keras。它們適用的領域相同,但是,Keras有更好的、更完善的文檔。

9.6: Torch

Torch是Facebook和Twitter主推的一個特別知名的深度學習框架,Facebook Reseach和DeepMind所使用的框架,正是Torch(DeepMind被Google收購之後才轉向TensorFlow)。出於性能的考慮, 它使用了一種比較小衆的編程語言Lua ,目前在音頻、圖像及視頻處理方面有着大量的應用。

在目前深度學習大部分以Python爲編程語言的大環境之下,一個以Lua爲編程語言的框架只有更多的劣勢,而不是優勢。Ricardo沒有Lua的使用經驗,他表示,如果他要用Torch的話,就必須先學習Lua語言才能使用Torch。就他個人來說,更傾向於熟悉的Python、Matlab或者C++來實現。

9.7: mxnet

mxnet是支持大多數編程語言的庫之一,它支持Python、R、C++、Julia等編程語言。Ricardo覺得使用R語言的人們會特別喜歡mxnet,因爲直到現在,在深度學習的編程語言領域中,Python是衛冕之王。

Ricardo以前並沒有過多關注mxnet,直到Amazon AWS宣佈將mxnet作爲其 深度學習AMI 中的 參考庫 時,提到了它巨大的水平擴展能力,他纔開始關注。

Ricardo表示他對多GPU的擴展能力有點懷疑,但仍然很願意去了解實驗更多的細節。但目前還是對mxnet的能力抱有懷疑的態度。

9.8: DL4J

DL4J,全名是Deep Learning for Java。正如其名,它支持Java。Ricardo說,他之所以能接觸到這個庫,是因爲它的文檔。當時,他在尋找 限制波爾茲曼機(Restricted Boltzman Machines) 、 自編碼器(Autoencoders) ,在DL4J找到這兩個文檔,文檔寫得很清楚,有理論,也有代碼示例。Ricardo表示D4LJ的文檔真的是一個藝術品,其他庫的文檔應該向它學習。

DL4J背後的公司Skymind意識到,雖然在深度學習世界中,Python是王,但大部分程序員都是Java起步的,因此,DL4J兼容JVM,也適用於Java、Clojure和Scala。 隨着Scala的潮起潮落,它也被很多 有前途的初創公司 使用。

9.8: DL4J

Cognitive Toolkit,就是之前被大家所熟知的縮略名CNTK,但最近剛更改爲現在這個名字,可能利用Microsoft認知服務(Microsoft Cognitive services)的影響力。在發佈的基準測試中,它似乎是非常強大的工具,支持垂直和水平推移。

到目前爲止,認知工具包似乎不太流行。關於這個庫,還沒有看到有很多相關的博客、網絡示例,或者在Kaggle裏的相關評論。Ricardo表示這看起來有點奇怪,因爲這是一個背靠微軟研究的框架,特別強調自己的推移能力。而且這個研究團隊在語音識別上打破了世界紀錄並逼近了人類水平。

你可以在他們的項目Wiki中的示例,瞭解到認知工具包在Python的語法和Keras非常相似。

9.9: Caffe

Caffe是最老的框架之一,比老牌還要老牌。 Caffe 是加州大學伯克利分校視覺與學習中心(Berkeley Vision and Learning Center ,BVLC)貢獻出來的一套深度學習工具,使用C/C++開發,上層提供Python API。Caffe同樣也在走分佈式路線,例如著名的Caffe On Spark項目。

9.10: Hivemall

Hivemall 結合了面向Hive的多種機器學習算法,它包括了很多擴展性很好的算法,可用於數據分類、遞歸、推薦、k最近鄰、異常檢測和特徵哈希等方面的分析應用。

9.11: RapidMiner

RapidMiner 具有豐富數據挖掘分析和算法功能,常用於解決各種的商業關鍵問題,解決方案覆蓋了各個領域,包括汽車、銀行、保險、生命科學、製造業、石油和天然氣、零售業及快消行業、通訊業、以及公用事業等各個行業。

9.12: Mahout

Mahout 目的是“爲快速創建可擴展、高性能的機器學習應用程序而打造一個環境”,主要特點是爲可伸縮的算法提供可擴展環境、面向Scala/Spark/H2O/Flink的新穎算法、Samsara(類似R的矢量數學環境),它還包括了用於在MapReduce上進行數據挖掘的衆多算法。

開發平臺

開發平臺主要包括如下:
Lumify ,Lingual ,Beam ,Cascading ,HPCC

10.1:Lumify

Lumify 歸Altamira科技公司(以國家安全技術而聞名)所有,這是一種開源大數據整合、分析和可視化平臺。
Lumify 官網

10.2:Lingual

Lingual 是Cascading的高級擴展,爲Hadoop提供了一個ANSI SQL接口極大地簡化了應用程序的開發和集成。Lingual實現了連接現有的商業智能(BI)工具,優化了計算成本,加快了基於Hadoop的應用開發速度。
Lingual 官網

10.3:Beam

Beam 基於Java提供了統一的數據進程管道開發,並且能夠很好地支持Spark和Flink。提供很多在線框架,開發者無需學太多框架。
Beam 官網

10.4:Cascading

Cascading 是一個基於Hadoop建立的API,用來創建複雜和容錯數據處理工作流。它抽象了集羣拓撲結構和配置,使得不用考慮背後的MapReduce,就能快速開發複雜的分佈式應用。
Cascading 官網

10.5:HPCC

HPCC 作爲Hadoop之外的一種選擇,是一個利用集羣服務器進行大數據分析的系統,HPCC在LexisNexis內部使用多年,是一個成熟可靠的系統,包含一系列的工具、一個稱爲ECL的高級編程語言、以及相關的數據倉庫,擴展性超強。
HPCC 官網

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