轉(zhuǎn)一篇,介紹得比較全面掂器。
URL:
https://www.codetd.com/article/11598609
前言
花了一點時間,整理了大數(shù)據(jù)相關(guān)開源項目、組件和官網(wǎng)地址革为。按照實際應(yīng)用功能的不同,分為以下10個部分舵鳞,并在目錄圖中進(jìn)行歸納震檩,后續(xù)章節(jié)的內(nèi)容則是分別介紹各組件的背景及應(yīng)用場景。
- 調(diào)度與管理服務(wù)
- 文件系統(tǒng)
- 數(shù)據(jù)搜集
- 消息系統(tǒng)
- 內(nèi)存技術(shù)
- 數(shù)據(jù)處理
- 查詢引擎
- 分析和報告工具
- 機(jī)器學(xué)習(xí)
- 開發(fā)平臺
目錄圖:
類別 | 開源項目 |
---|---|
調(diào)度與管理服務(wù) | Azkaban 、YARN 抛虏、Mesos博其、Ambari 、ZooKeeper 迂猴、Thrift 慕淡、Chukwa |
文件系統(tǒng) | Lustre 、HDFS 沸毁、GlusterFS 峰髓、Alluxio 、Ceph息尺、PVFS 携兵、QFS |
數(shù)據(jù)搜集 | Logstash 、Scribe 搂誉、Flume |
消息系統(tǒng) | RabbitMQ 徐紧、ActiveMQ 、ActiveMQ 炭懊、Kafka |
內(nèi)存技術(shù) | Terracotta 并级、Ignite 、GemFire 侮腹、GridGain |
數(shù)據(jù)處理 | Spark,Kinesis ,Hadoop 死遭,F(xiàn)link ,Storm凯旋,HaLoop |
查詢引擎 | Presto 呀潭,Drill ,Phoenix 至非,Hive 钠署,SparkSQL,Tajo ,Impala 荒椭,Elasticsearch 谐鼎,Solr ,Shark 趣惠,Lucene |
分析和報告工具 | Kettle狸棍,Kylin ,Kibana 味悄,Druid 草戈,KNIME ,Zeppelin 侍瑟,Talend 唐片,Splunk 丙猬,Pentaho ,Jaspersoft 费韭,SpagoBI |
機(jī)器學(xué)習(xí) | Tensorflow茧球,Theano,Keras星持,DSSTNE抢埋,Lasagne,Torch督暂,mxnet揪垄,DL4J,Cognitive Toolkit损痰,Caffe福侈,Hivemall ,RapidMiner 卢未,Mahout |
開發(fā)平臺 | Lumify 肪凛,Lingual ,Beam 辽社,Cascading 伟墙,HPCC |
1:調(diào)度與管理服務(wù)
大數(shù)據(jù)調(diào)度與管理服務(wù)主要包括以下相關(guān)軟件:
Azkaban 、YARN 滴铅、Mesos戳葵、Ambari 、ZooKeeper 汉匙、Thrift 拱烁、Chukwa 。以下將分別介紹噩翠。
1.1:Azkaban
Azkaban 是一款基于Java編寫的任務(wù)調(diào)度系統(tǒng)任務(wù)調(diào)度戏自,來自LinkedIn公司,用于管理他們的Hadoop批處理工作流伤锚。Azkaban根據(jù)工作的依賴性進(jìn)行排序擅笔,提供友好的Web用戶界面來維護(hù)和跟蹤用戶的工作流程。
Azkaban官網(wǎng)
1.2:YARN
YARN 是一種新的Hadoop資源管理器屯援,它是一個通用資源管理系統(tǒng)猛们,可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,解決了舊MapReduce框架的性能瓶頸狞洋。它的基本思想是把資源管理和作業(yè)調(diào)度/監(jiān)控的功能分割到單獨的守護(hù)進(jìn)程弯淘。
Hadoop官網(wǎng)中關(guān)于Yarn的介紹
1.3:Mesos
Mesos 是由加州大學(xué)伯克利分校的AMPLab首先開發(fā)的一款開源群集管理軟件,支持Hadoop徘铝、ElasticSearch耳胎、Spark惯吕、Storm 和Kafka等架構(gòu)惕它。對數(shù)據(jù)中心而言它就像一個單一的資源池怕午,從物理或虛擬機(jī)器中抽離了CPU,內(nèi)存淹魄,存儲以及其它計算資源郁惜, 很容易建立和有效運行具備容錯性和彈性的分布式系統(tǒng)。
Mesos 官網(wǎng)
1.4:Ambari
Ambari 作為Hadoop生態(tài)系統(tǒng)的一部分甲锡,提供了基于Web的直觀界面兆蕉,可用于配置、管理和監(jiān)控Hadoop集群缤沦。目前已支持大多數(shù)Hadoop組件虎韵,包括HDFS、MapReduce澜共、Hive扳缕、Pig厕隧、 Hbase、Zookeper测萎、Sqoop和Hcatalog等。
Ambari 官網(wǎng)
1.5:ZooKeeper
ZooKeeper 是一個分布式的應(yīng)用程序協(xié)調(diào)服務(wù)届巩,是Hadoop和Hbase的重要組件硅瞧。它是一個為分布式應(yīng)用提供一致性服務(wù)的工具,讓Hadoop集群里面的節(jié)點可以彼此協(xié)調(diào)恕汇。ZooKeeper現(xiàn)在已經(jīng)成為了 Apache的頂級項目腕唧,為分布式系統(tǒng)提供了高效可靠且易于使用的協(xié)同服務(wù)。
ZooKeeper 官網(wǎng)
1.6:Thrift
Thrift 在2007年facebook提交Apache基金會將Thrift作為一個開源項目瘾英,對于當(dāng)時的facebook來說創(chuàng)造thrift是為了解決facebook系統(tǒng)中各系統(tǒng)間大數(shù)據(jù)量的傳輸通信以及系統(tǒng)之間語言環(huán)境不同需要跨平臺的特性枣接。
Thrift 官網(wǎng)
1.7:Chukwa
Chukwa 是監(jiān)測大型分布式系統(tǒng)的一個開源數(shù)據(jù)采集系統(tǒng),建立在HDFS/MapReduce框架之上并繼承了Hadoop的可伸縮性和可靠性方咆,可以收集來自大型分布式系統(tǒng)的數(shù)據(jù)月腋,用于監(jiān)控。它還包括靈活而強(qiáng)大的顯示工具用于監(jiān)控瓣赂、分析結(jié)果榆骚。
Chukwa 官網(wǎng)
2:文件系統(tǒng)
大數(shù)據(jù)文件系統(tǒng)主要包括以下相關(guān)軟件:
Lustre 、HDFS 煌集、GlusterFS 妓肢、Alluxio 、Ceph苫纤、PVFS 碉钠、QFS纲缓,以下將分別介紹。
2.1:Lustre
Lustre 是一個大規(guī)模的喊废、安全可靠的祝高、具備高可用性的集群文件系統(tǒng),它是由SUN公司開發(fā)和維護(hù)的污筷。該項目主要的目的就是開發(fā)下一代的集群文件系統(tǒng)工闺,目前可以支持超過10000個節(jié)點,數(shù)以PB的數(shù)據(jù)存儲量瓣蛀。
Lustre 官網(wǎng)
2.2:HDFS
HDFS Hadoop Distributed File System陆蟆,簡稱HDFS,是一個分布式文件系統(tǒng)惋增。HDFS是一個高度容錯性的系統(tǒng)叠殷,適合部署在廉價的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問诈皿,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用林束。
Hadoop官網(wǎng)中關(guān)于HDFS的介紹
2.3:GlusterFS
GlusterFS 是一個集群的文件系統(tǒng),支持PB級的數(shù)據(jù)量纫塌。GlusterFS 通過RDMA和TCP/IP方式將分布到不同服務(wù)器上的存儲空間匯集成一個大的網(wǎng)絡(luò)化并行文件系統(tǒng)诊县。
GlusterFS 官網(wǎng)
2.4:Alluxio
Alluxio 前身是Tachyon,是以內(nèi)存為中心的分布式文件系統(tǒng)措左,擁有高性能和容錯能力依痊,能夠為集群框架(如Spark、MapReduce)提供可靠的內(nèi)存級速度的文件共享服務(wù)怎披。
Alluxio 官網(wǎng)
2.5:Ceph
Ceph 是新一代開源分布式文件系統(tǒng)胸嘁,主要目標(biāo)是設(shè)計成基于POSIX的沒有單點故障的分布式文件系統(tǒng),提高數(shù)據(jù)的容錯性并實現(xiàn)無縫的復(fù)制凉逛。
Ceph 官網(wǎng)
2.6:PVFS
PVFS 是一個高性能性宏、開源的并行文件系統(tǒng),主要用于并行計算環(huán)境中的應(yīng)用状飞。PVFS特別為超大數(shù)量的客戶端和服務(wù)器端所設(shè)計毫胜,它的模塊化設(shè)計結(jié)構(gòu)可輕松的添加新的硬件和算法支持。
PVFS 官網(wǎng)
2.7:QFS
QFS Quantcast File System (QFS) 是一個高性能诬辈、容錯好酵使、分布式的文件系統(tǒng),用于開發(fā)支持 MapReduce處理或者需要順序讀寫大文件的應(yīng)用焙糟。
QFS 官網(wǎng)
3:數(shù)據(jù)搜集
大數(shù)據(jù)數(shù)據(jù)搜集主要包括以下相關(guān)軟件:Logstash 口渔、Scribe 、Flume 穿撮,以下將分別介紹缺脉。
3.1:Logstash
Logstash 是一個應(yīng)用程序日志痪欲、事件的傳輸、處理攻礼、管理和搜索的平臺业踢。可以用它來統(tǒng)一對應(yīng)用程序日志進(jìn)行收集管理秘蛔,提供了Web接口用于查詢和統(tǒng)計陨亡。
Logstash 官網(wǎng)
3.2:Scribe
Scribe是Facebook開源的日志收集系統(tǒng)傍衡,它能夠從各種日志源上收集日志深员,存儲到一個中央存儲系統(tǒng)(可以是NFS,分布式文件系統(tǒng)等)上蛙埂,以便于進(jìn)行集中統(tǒng)計分析處理倦畅。
Scribe相關(guān)信息
3.3:Flume
Flume 是Cloudera提供的一個高可用的、高可靠的绣的、分布式的海量日志采集叠赐、聚合和傳輸?shù)南到y(tǒng)。Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方屡江,用于收集數(shù)據(jù)芭概。同時,F(xiàn)lume支持對數(shù)據(jù)進(jìn)行簡單處理惩嘉,并寫入各種數(shù)據(jù)接受方(可定制)罢洲。
Flume 官網(wǎng)
4:消息系統(tǒng)
大數(shù)據(jù)消息系統(tǒng)主要包括以下相關(guān)軟件:
RabbitMQ 、ActiveMQ 文黎、ActiveMQ 惹苗、Kafka ,以下將分別介紹耸峭。
4.1:RabbitMQ
RabbitMQ 是一個受歡迎的消息代理系統(tǒng)桩蓉,通常用于應(yīng)用程序之間或者程序的不同組件之間通過消息來進(jìn)行集成。RabbitMQ提供可靠的應(yīng)用消息發(fā)送劳闹、易于使用院究、支持所有主流操作系統(tǒng)、支持大量開發(fā)者平臺本涕。
RabbitMQ 官網(wǎng)
4.1:ActiveMQ
ActiveMQ 是Apache出品业汰,號稱“最流行的,最強(qiáng)大”的開源消息集成模式服務(wù)器偏友。ActiveMQ特點是速度快蔬胯,支持多種跨語言的客戶端和協(xié)議,其企業(yè)集成模式和許多先進(jìn)的功能易于使用位他,是一個完全支持JMS1.1和J2EE 1.4規(guī)范的JMS Provider實現(xiàn)氛濒。
ActiveMQ 官網(wǎng)
4.3:Kafka
Kafka 是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)产场,它可以處理消費者規(guī)模網(wǎng)站中的所有動作流數(shù)據(jù),目前已成為大數(shù)據(jù)系統(tǒng)在異步和分布式消息之間的最佳選擇舞竿。
Kafka 官網(wǎng)
5:內(nèi)存技術(shù)
大數(shù)據(jù)內(nèi)存技術(shù)主要包括以下相關(guān)軟件:
Terracotta 京景、Ignite 、GemFire 骗奖、GridGain 确徙。以下將分別介紹。
5.1:Terracotta
Terracotta 聲稱其BigMemory技術(shù)是“世界上首屈一指的內(nèi)存中數(shù)據(jù)管理平臺”执桌,支持簡單鄙皇、可擴(kuò)展、實時消息仰挣,聲稱在190個國家擁有210萬開發(fā)人員伴逸,全球1000家企業(yè)部署了其軟件。
Terracotta 官網(wǎng)
5.2:Ignite
Ignite 是一種高性能膘壶、整合式错蝴、分布式的內(nèi)存中平臺,可用于對大規(guī)模數(shù)據(jù)集執(zhí)行實時計算和處理颓芭,速度比傳統(tǒng)的基于磁盤的技術(shù)或閃存技術(shù)高出好幾個數(shù)量級顷锰。該平臺包括數(shù)據(jù)網(wǎng)格、計算網(wǎng)格亡问、服務(wù)網(wǎng)格官紫、流媒體、Hadoop加速玛界、高級集群万矾、文件系統(tǒng)、消息傳遞慎框、事件和數(shù)據(jù)結(jié)構(gòu)等功能良狈。
Ignite 官網(wǎng)
5.3:GemFire
GemFire Pivotal宣布它將開放其大數(shù)據(jù)套件關(guān)鍵組件的源代碼,其中包括GemFire內(nèi)存中NoSQL數(shù)據(jù)庫笨枯。它已向Apache軟件基金會遞交了一項提案薪丁,以便在“Geode”的名下管理GemFire數(shù)據(jù)庫的核心引擎。
GemFire 官網(wǎng)
5.4:GridGain
GridGain 由Apache Ignite驅(qū)動的GridGrain提供內(nèi)存中數(shù)據(jù)結(jié)構(gòu)馅精,用于迅速處理大數(shù)據(jù)严嗜,還提供基于同一技術(shù)的Hadoop加速器。
GridGain 官網(wǎng)
6:數(shù)據(jù)處理
數(shù)據(jù)處理主要包括以下相關(guān)軟件技術(shù):
Spark,Kinesis ,Hadoop 洲敢,F(xiàn)link 漫玄,Storm,HaLoop
6.1:Spark
Spark 是一個高速、通用大數(shù)據(jù)計算處理引擎睦优。擁有Hadoop MapReduce所具有的優(yōu)點渗常,但不同的是Job的中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS汗盘,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法皱碘。它可以與Hadoop和Apache Mesos一起使用,也可以獨立使用
Spark 官網(wǎng)
6.2:Kinesis
Kinesis 可以構(gòu)建用于處理或分析流數(shù)據(jù)的自定義應(yīng)用程序隐孽,來滿足特定需求癌椿。Amazon Kinesis Streams 每小時可從數(shù)十萬種來源中連續(xù)捕獲和存儲數(shù)TB數(shù)據(jù),如網(wǎng)站點擊流菱阵、財務(wù)交易踢俄、社交媒體源、IT日志和定位追蹤事件送粱。
Kinesis Github
6.3:Hadoop
Hadoop 是一個開源框架褪贵,適合運行在通用硬件,支持用簡單程序模型分布式處理跨集群大數(shù)據(jù)集抗俄,支持從單一服務(wù)器到上千服務(wù)器的水平scale up。Apache的Hadoop項目已幾乎與大數(shù)據(jù)劃上了等號世舰,它不斷壯大起來动雹,已成為一個完整的生態(tài)系統(tǒng),擁有眾多開源工具面向高度擴(kuò)展的分布式計算跟压。高效胰蝠、可靠、可伸縮震蒋,能夠為你的數(shù)據(jù)存儲項目提供所需的YARN茸塞、HDFS和基礎(chǔ)架構(gòu),并且運行主要的大數(shù)據(jù)服務(wù)和應(yīng)用程序查剖。
Hadoop官網(wǎng)
6.4:Spark Streaming
Spark Streaming 實現(xiàn)微批處理钾虐,目標(biāo)是很方便的建立可擴(kuò)展、容錯的流應(yīng)用笋庄,支持Java效扫、Scala和Python,和Spark無縫集成直砂。Spark Streaming可以讀取數(shù)據(jù)HDFS菌仁,F(xiàn)lume,Kafka静暂,Twitter和ZeroMQ济丘,也可以讀取自定義數(shù)據(jù)。
6.5:Trident
Trident 是對Storm的更高一層的抽象洽蛀,除了提供一套簡單易用的流數(shù)據(jù)處理API之外摹迷,它以batch(一組tuples)為單位進(jìn)行處理弯院,這樣一來,可以使得一些處理更簡單和高效泪掀。
Spark Streaming官網(wǎng)介紹
6.6:Flink
Flink 于今年躋身Apache頂級開源項目听绳,與HDFS完全兼容。Flink提供了基于Java和Scala的API异赫,是一個高效椅挣、分布式的通用大數(shù)據(jù)分析引擎。更主要的是塔拳,F(xiàn)link支持增量迭代計算鼠证,使得系統(tǒng)可以快速地處理數(shù)據(jù)密集型、迭代的任務(wù)靠抑。
Flink 官網(wǎng)
6.7:Samza
Samza 出自于LinkedIn量九,構(gòu)建在Kafka之上的分布式流計算框架,是Apache頂級開源項目颂碧≤校可直接利用Kafka和Hadoop YARN提供容錯、進(jìn)程隔離以及安全载城、資源管理肌似。
Samza 官網(wǎng)
6.8:Storm
Storm是Twitter開源的一個類似于Hadoop的實時數(shù)據(jù)處理框架。編程模型簡單诉瓦,顯著地降低了實時處理的難度川队,也是當(dāng)下最人氣的流計算框架之一。與其他計算框架相比睬澡,Storm最大的優(yōu)點是毫秒級低延時固额。
Storm官網(wǎng)
6.9:Yahoo S4
Yahoo S4 (Simple Scalable Streaming System)是一個分布式流計算平臺,具備通用煞聪、分布式斗躏、可擴(kuò)展的、容錯米绕、可插拔等特點瑟捣,程序員可以很容易地開發(fā)處理連續(xù)無邊界數(shù)據(jù)流(continuous unbounded streams of data)的應(yīng)用。它的目標(biāo)是填補(bǔ)復(fù)雜專有系統(tǒng)和面向批處理開源產(chǎn)品之間的空白栅干,并提供高性能計算平臺來解決并發(fā)處理系統(tǒng)的復(fù)雜度迈套。
Yahoo S4 官網(wǎng)
6.10:HaLoop
HaLoop 是一個Hadoop MapReduce框架的修改版本,其目標(biāo)是為了高效支持 迭代碱鳞,遞歸數(shù)據(jù) 分析任務(wù)桑李,如PageRank,HITs,K-means贵白,sssp等率拒。
7:查詢引擎
查詢引擎主要包括以下相關(guān)軟件技術(shù):
Presto ,Drill ,Phoenix ,Hive ,SparkSQL,Tajo ,Impala 禁荒,Elasticsearch 猬膨,Solr ,Shark 呛伴,Lucene
7.1: Presto
Presto 是一個開源的分布式SQL查詢引擎,適用于交互式分析查詢沛申,可對250PB以上的數(shù)據(jù)進(jìn)行快速地交互式分析姐军。Presto的設(shè)計和編寫是為了解決像Facebook這樣規(guī)模的商業(yè)數(shù)據(jù)倉庫的交互式分析和處理速度的問題铁材。Facebook稱Presto的性能比諸如Hive和MapReduce要好上10倍有多奕锌。
Presto -github
7.2: Drill
Drill 于2012年8月份由Apache推出,讓用戶可以使用基于SQL的查詢歇攻,查詢Hadoop固惯、NoSQL數(shù)據(jù)庫和云存儲服務(wù)。它能夠運行在上千個節(jié)點的服務(wù)器集群上,且能在幾秒內(nèi)處理PB級或者萬億條的數(shù)據(jù)記錄屡穗。它可用于數(shù)據(jù)挖掘和即席查詢忽肛,支持一系列廣泛的數(shù)據(jù)庫,包括HBase础废、MongoDB罕模、MapR-DB淑掌、HDFS、MapR-FS芋绸、亞馬遜S3、Azure Blob Storage廷蓉、谷歌云存儲和Swift桃犬。
Drill 官網(wǎng)
7.3: Phoenix
Phoenix 是一個Java中間層给猾,可以讓開發(fā)者在Apache HBase上執(zhí)行SQL查詢疫萤。Phoenix完全使用Java編寫敢伸,并且提供了一個客戶端可嵌入的JDBC驅(qū)動池颈。Phoenix查詢引擎會將SQL查詢轉(zhuǎn)換為一個或多個HBase scan,并編排執(zhí)行以生成標(biāo)準(zhǔn)的JDBC結(jié)果集每币。
Phoenix 官網(wǎng)
7.4: Pig
Pig 是一種編程語言兰怠,它簡化了Hadoop常見的工作任務(wù)李茫。Pig可加載數(shù)據(jù)魄宏、轉(zhuǎn)換數(shù)據(jù)以及存儲最終結(jié)果。Pig最大的作用就是為MapReduce框架實現(xiàn)了一套shell腳本 味榛,類似我們通常熟悉的SQL語句搏色。
Pig 官網(wǎng)
7.5: Hive
Hive 是基于Hadoop的一個數(shù)據(jù)倉庫工具匕得,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能集币,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運行翠忠。 其優(yōu)點是學(xué)習(xí)成本低秽之,可以通過類SQL語句快速實現(xiàn)簡單的MapReduce統(tǒng)計,不必開發(fā)專門的MapReduce應(yīng)用跨细,十分適合數(shù)據(jù)倉庫的統(tǒng)計分析冀惭。
Hive 官網(wǎng)
7.6: SparkSQL
SparkSQL 的前身是Shark掀鹅,SparkSQL拋棄原有Shark的代碼并汲取了一些優(yōu)點乐尊,如內(nèi)存列存儲(In-Memory Columnar Storage)扔嵌、Hive兼容性等。由于擺脫了對Hive的依賴性谣殊,SparkSQL無論在數(shù)據(jù)兼容、性能優(yōu)化宜狐、組件擴(kuò)展方面都得到了極大的方便抚恒。
SparkSQL 官網(wǎng)
7.7: Stinger
Stinger 原來叫Tez俭驮,是下一代Hive春贸,由Hortonworks主導(dǎo)開發(fā)萍恕,運行在YARN上的DAG計算框架车要。某些測試下翼岁,Stinger能提升10倍左右的性能琅坡,同時會讓Hive支持更多的SQL。
Stinger 官網(wǎng)
7.8: Tajo
Tajo 目的是在HDFS之上構(gòu)建一個可靠的售躁、支持關(guān)系型數(shù)據(jù)的分布式數(shù)據(jù)倉庫系統(tǒng)迂求,它的重點是提供低延遲晃跺、可擴(kuò)展的ad-hoc查詢和在線數(shù)據(jù)聚集掀虎,以及為更傳統(tǒng)的ETL提供工具烹玉。
Tajo 官網(wǎng)
7.9: Impala
Impala Cloudera聲稱,基于SQL的Impala數(shù)據(jù)庫是“面向Apache Hadoop的領(lǐng)先的開源分析數(shù)據(jù)庫”县忌。它可以作為一款獨立產(chǎn)品來下載症杏,又是Cloudera的商業(yè)大數(shù)據(jù)產(chǎn)品的一部分瑞信。Cloudera Impala 可以直接為存儲在HDFS或HBase中的Hadoop數(shù)據(jù)提供快速凡简、交互式的SQL查詢。
Impala 官網(wǎng)
7.10: Elasticsearch
Elasticsearch 是一個基于Lucene的搜索服務(wù)器司抱。它提供了一個分布式挖函、支持多用戶的全文搜索引擎怨喘,基于RESTful web接口必怜。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布暖途,是當(dāng)前流行的企業(yè)級搜索引擎驻售。設(shè)計用于云計算中更米,能夠達(dá)到實時搜索征峦、穩(wěn)定栏笆、可靠、快速蚜枢、安裝使用方便祟偷。
Elasticsearch 官網(wǎng)
7.11: Solr
Solr 基于Apache Lucene,是一種高度可靠贺辰、高度擴(kuò)展的企業(yè)搜索平臺。知名用戶包括eHarmony吗伤、西爾斯足淆、StubHub巧号、Zappos姥闭、百思買棚品、AT&T铜跑、Instagram、Netflix掷空、彭博社和Travelocity拣帽。
Solr 官網(wǎng)
7.12: Shark
Shark 即Hive on Spark减拭,本質(zhì)上是通過Hive的HQL解析区丑,把HQL翻譯成Spark上的RDD操作沧侥,然后通過Hive的metadata獲取數(shù)據(jù)庫里的表信息宴杀,實際HDFS上的數(shù)據(jù)和文件旺罢,會由Shark獲取并放到Spark上運算绢记。Shark的特點就是快蠢熄,完全兼容Hive签孔,且可以在shell模式下使用rdd2sql()這樣的API饥追,把HQL得到的結(jié)果集判耕,繼續(xù)在scala環(huán)境下運算翘骂,支持自己編寫簡單的機(jī)器學(xué)習(xí)或簡單分析處理函數(shù)碳竟,對HQL結(jié)果進(jìn)一步分析計算莹桅。
7.13: Lucene
Lucene 基于Java的Lucene可以非常迅速地執(zhí)行全文搜索诈泼。據(jù)官方網(wǎng)站聲稱,它在現(xiàn)代硬件上每小時能夠檢索超過150GB的數(shù)據(jù)岖赋,它擁有強(qiáng)大而高效的搜索算法唐断。
Lucene 官網(wǎng)
8:分析和報告工具
分析和報告工具主要包括如下:
Kettle脸甘,Kylin 丹诀,Kibana 忿墅,Druid ,KNIME ,Zeppelin 棍弄,Talend 呼畸,Splunk 蛮原,Pentaho 儒陨,Jaspersoft 笋籽,SpagoBI
8.1: Kettle
Kettle 這是一個ETL工具集车海,它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù)侍芝,通過提供一個圖形化的用戶環(huán)境來描述你想做什么州叠,而不是你想怎么做留量。作為Pentaho的一個重要組成部分楼熄,現(xiàn)在在國內(nèi)項目應(yīng)用上逐漸增多可岂。
Kettle -github
8.2: Kylin
Kylin 是一個開源的分布式分析引擎,提供了基于Hadoop的超大型數(shù)據(jù)集(TB/PB級別)的SQL接口以及多維度的OLAP分布式聯(lián)機(jī)分析纸淮。最初由eBay開發(fā)并貢獻(xiàn)至開源社區(qū)亚享。它能在亞秒內(nèi)查詢巨大的Hive表欺税。
Kylin 官網(wǎng)
8.3: Kibana
Kibana 是一個使用Apache 開源協(xié)議的Elasticsearch 分析和搜索儀表板晚凿,可作為Logstash和ElasticSearch日志分析的 Web 接口歼秽,對日志進(jìn)行高效的搜索燥筷、可視化荆责、分析等各種操作做院。
Kibana 官網(wǎng)
8.4: Druid
Druid 是一個用于大數(shù)據(jù)實時查詢和分析的高容錯键耕、高性能屈雄、分布式的開源系統(tǒng),旨在快速處理大規(guī)模的數(shù)據(jù)蚁孔,并能夠?qū)崿F(xiàn)快速查詢和分析杠氢。
Druid 官網(wǎng)
8.5: KNIME
KNIME 的全稱是“康斯坦茨信息挖掘工具”(Konstanz Information Miner),是一個開源分析和報表平臺。宣稱“是任何數(shù)據(jù)科學(xué)家完美的工具箱因悲,超過1000個模塊晃琳,可運行數(shù)百個實例,全面的集成工具挡毅,以及先進(jìn)的算法”段磨。
KNIME 官網(wǎng)
8.6: Zeppelin
Zeppelin 是一個提供交互數(shù)據(jù)分析且基于Web的筆記本苹支。方便你做出可數(shù)據(jù)驅(qū)動的、可交互且可協(xié)作的精美文檔,并且支持多種語言狼速,包括 Scala(使用 Apache Spark)向胡、Python(Apache Spark)僵芹、SparkSQL、 Hive桐腌、 Markdown棘街、Shell等石挂。
Zeppelin 官網(wǎng)
8.7: Talend
Talend Open Studio 是第一家針對的數(shù)據(jù)集成工具市場的ETL(數(shù)據(jù)的提取Extract蛔糯、傳輸Transform、載入Load)開源軟件供應(yīng)商。Talend的下載量已超過200萬人次,其開源軟件提供了數(shù)據(jù)整合功能。其用戶包括美國國際集團(tuán)(AIG)、康卡斯特吨拍、電子港灣、通用電氣、三星筒主、Ticketmaster和韋里遜等企業(yè)組織建钥。
Talend 官網(wǎng)
8.8: Splunk
Splunk 是機(jī)器數(shù)據(jù)的引擎。使用 Splunk 可收集盯荤、索引和利用所有應(yīng)用程序宏粤、服務(wù)器和設(shè)備(物理灼卢、虛擬和云中)生成的快速移動型計算機(jī)數(shù)據(jù)鞋真,從一個位置搜索并分析所有實時和歷史數(shù)據(jù)涩咖。
Splunk 官網(wǎng)
8.9: Pentaho
Pentaho 是世界上最流行的開源商務(wù)智能軟件檩互,以工作流為核心的闸昨、強(qiáng)調(diào)面向解決方案而非工具組件的薄风、基于java平臺的商業(yè)智能(Business Intelligence)套件。包括一個web server平臺和幾個工具軟件:報表嵌牺、分析逆粹、圖表僻弹、數(shù)據(jù)集成蹋绽、數(shù)據(jù)挖掘等筋蓖,可以說包括了商務(wù)智能的方方面面粘咖。
Pentaho 社區(qū)
8.10: Jaspersoft
Jaspersoft 提供了靈活瓮下、可嵌入的商業(yè)智能工具讽坏,用戶包括眾多企業(yè)組織:高朋路呜、冠群科技胀葱、美國農(nóng)業(yè)部巡社、愛立信晌该、時代華納
Jaspersoft 官網(wǎng)
8.11: SpagoBI
SpagoBI Spago被市場分析師們稱為“開源領(lǐng)袖”绿渣,它提供商業(yè)智能中符、中間件和質(zhì)量保證軟件淀散,另外還提供相應(yīng)的Java EE應(yīng)用程序開發(fā)框架档插。
SpagoBI 官網(wǎng)
9:機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)框架主要包括如下:
Tensorflow郭膛,Theano则剃,Keras棍现,DSSTNE轴咱,Lasagne烈涮,Torch坚洽,mxnet讶舰,DL4J跳昼,Cognitive Toolkit鹅颊,Caffe堪伍,Hivemall 帝雇,RapidMiner 尸闸,Mahout
9.1: Tensorflow
Tensorflow是Google開源的一款深度學(xué)習(xí)工具吮廉,使用C++語言開發(fā)茧痕,上層提供Python API踪旷。在開源之后令野,在工業(yè)界和學(xué)術(shù)界引起了極大的震動气破,因為TensorFlow曾經(jīng)是著名的Google Brain計劃中的一部分现使,Google Brain項目的成功曾經(jīng)吸引了眾多科學(xué)家和研究人員往深度學(xué)習(xí)這個“坑”里面跳碳锈,這也是當(dāng)今深度學(xué)習(xí)如此繁榮的重要原因售碳。
9.2: Theano
Theano是老牌贸人、穩(wěn)定的庫之一艺智。它是深度學(xué)習(xí)開源工具的鼻祖十拣,由蒙特利爾理工學(xué)院時間開發(fā)于2008年并將其開源,框架使用Python語言開發(fā)弄跌。它是深度學(xué)習(xí)庫的發(fā)軔铛只,許多在學(xué)術(shù)界和工業(yè)界有影響力的深度學(xué)習(xí)框架都構(gòu)建在Theano之上淳玩,并逐步形成了自身的生態(tài)系統(tǒng)蜕着,這其中就包含了著名的Keras承匣、Lasagne和Blocks韧骗。
Theano是底層庫袍暴,遵循Tensorflow風(fēng)格政模。因此不適合深度學(xué)習(xí),而更合適數(shù)值計算優(yōu)化。它支持自動函數(shù)梯度計算措嵌,它有 Python接口 企巢,集成了Numpy浪规,使得這個庫從一開始就成為通用深度學(xué)習(xí)最常用的庫之一笋婿。
9.3: Keras
Keras是一個非常高層的庫缸濒,工作在Theano或Tensorflow(可配置)之上庇配。此外捞慌,Keras強(qiáng)調(diào)極簡主義袖订,你可以用寥寥可數(shù)的幾行代碼來構(gòu)建神經(jīng)網(wǎng)絡(luò)著角。在 這里 吏口,您可以看到一個Keras代碼示例产徊,與在Tensorflow中實現(xiàn)相同功能所需的代碼相比較舟铜。
9.4: DSSTNE
DSSTNE(Deep Scalable Sparse Tensor Network Engine,DSSTNE)是Amazon開源的一個非橙玻酷的框架她我,由C++語言實現(xiàn)番舆。但它經(jīng)常被忽視恨狈。為什么拴事?因為衡瓶,撇開其他因素不談哮针,它并不是為一般用途設(shè)計的。DSSTNE只做一件事傀缩,但它做得很好:推薦系統(tǒng)。正如它的官網(wǎng)所言,它不是作為研究用途,也不是用于測試想法娩嚼,而是為了用于生產(chǎn)的框架岳悟。
9.5: Lasagne
Lasagne是一個工作在Theano之上的庫贵少。它的任務(wù)是將深度學(xué)習(xí)算法的復(fù)雜計算予以簡單地抽象化,并提供一個更友好的 Python 接口宽气。這是一個老牌的庫萄涯,長久以來涝影,它是一個具備高擴(kuò)展性的工具争占。在Ricardo看來燃逻,它的發(fā)展速度跟不上Keras。它們適用的領(lǐng)域相同臂痕,但是伯襟,Keras有更好的、更完善的文檔握童。
9.6: Torch
Torch是Facebook和Twitter主推的一個特別知名的深度學(xué)習(xí)框架姆怪,F(xiàn)acebook Reseach和DeepMind所使用的框架澡绩,正是Torch(DeepMind被Google收購之后才轉(zhuǎn)向TensorFlow)稽揭。出于性能的考慮, 它使用了一種比較小眾的編程語言Lua 肥卡,目前在音頻溪掀、圖像及視頻處理方面有著大量的應(yīng)用。
在目前深度學(xué)習(xí)大部分以Python為編程語言的大環(huán)境之下步鉴,一個以Lua為編程語言的框架只有更多的劣勢揪胃,而不是優(yōu)勢。Ricardo沒有Lua的使用經(jīng)驗唠叛,他表示只嚣,如果他要用Torch的話,就必須先學(xué)習(xí)Lua語言才能使用Torch艺沼。就他個人來說册舞,更傾向于熟悉的Python、Matlab或者C++來實現(xiàn)障般。
9.7: mxnet
mxnet是支持大多數(shù)編程語言的庫之一调鲸,它支持Python、R挽荡、C++藐石、Julia等編程語言。Ricardo覺得使用R語言的人們會特別喜歡mxnet定拟,因為直到現(xiàn)在于微,在深度學(xué)習(xí)的編程語言領(lǐng)域中,Python是衛(wèi)冕之王。
Ricardo以前并沒有過多關(guān)注mxnet株依,直到Amazon AWS宣布將mxnet作為其 深度學(xué)習(xí)AMI 中的 參考庫 時驱证,提到了它巨大的水平擴(kuò)展能力,他才開始關(guān)注恋腕。
Ricardo表示他對多GPU的擴(kuò)展能力有點懷疑抹锄,但仍然很愿意去了解實驗更多的細(xì)節(jié)。但目前還是對mxnet的能力抱有懷疑的態(tài)度荠藤。
9.8: DL4J
DL4J伙单,全名是Deep Learning for Java。正如其名哈肖,它支持Java吻育。Ricardo說,他之所以能接觸到這個庫淤井,是因為它的文檔扫沼。當(dāng)時,他在尋找 限制波爾茲曼機(jī)(Restricted Boltzman Machines) 庄吼、 自編碼器(Autoencoders) 缎除,在DL4J找到這兩個文檔,文檔寫得很清楚总寻,有理論器罐,也有代碼示例。Ricardo表示D4LJ的文檔真的是一個藝術(shù)品渐行,其他庫的文檔應(yīng)該向它學(xué)習(xí)轰坊。
DL4J背后的公司Skymind意識到,雖然在深度學(xué)習(xí)世界中祟印,Python是王肴沫,但大部分程序員都是Java起步的,因此蕴忆,DL4J兼容JVM颤芬,也適用于Java、Clojure和Scala套鹅。 隨著Scala的潮起潮落站蝠,它也被很多 有前途的初創(chuàng)公司 使用。
9.8: DL4J
Cognitive Toolkit卓鹿,就是之前被大家所熟知的縮略名CNTK菱魔,但最近剛更改為現(xiàn)在這個名字,可能利用Microsoft認(rèn)知服務(wù)(Microsoft Cognitive services)的影響力吟孙。在發(fā)布的基準(zhǔn)測試中澜倦,它似乎是非常強(qiáng)大的工具聚蝶,支持垂直和水平推移。
到目前為止藻治,認(rèn)知工具包似乎不太流行既荚。關(guān)于這個庫,還沒有看到有很多相關(guān)的博客栋艳、網(wǎng)絡(luò)示例,或者在Kaggle里的相關(guān)評論句各。Ricardo表示這看起來有點奇怪吸占,因為這是一個背靠微軟研究的框架,特別強(qiáng)調(diào)自己的推移能力凿宾。而且這個研究團(tuán)隊在語音識別上打破了世界紀(jì)錄并逼近了人類水平矾屯。
你可以在他們的項目Wiki中的示例,了解到認(rèn)知工具包在Python的語法和Keras非常相似初厚。
9.9: Caffe
Caffe是最老的框架之一件蚕,比老牌還要老牌。 Caffe 是加州大學(xué)伯克利分校視覺與學(xué)習(xí)中心(Berkeley Vision and Learning Center 产禾,BVLC)貢獻(xiàn)出來的一套深度學(xué)習(xí)工具排作,使用C/C++開發(fā),上層提供Python API亚情。Caffe同樣也在走分布式路線妄痪,例如著名的Caffe On Spark項目。
9.10: Hivemall
Hivemall 結(jié)合了面向Hive的多種機(jī)器學(xué)習(xí)算法楞件,它包括了很多擴(kuò)展性很好的算法衫生,可用于數(shù)據(jù)分類、遞歸土浸、推薦罪针、k最近鄰、異常檢測和特征哈希等方面的分析應(yīng)用黄伊。
9.11: RapidMiner
RapidMiner 具有豐富數(shù)據(jù)挖掘分析和算法功能泪酱,常用于解決各種的商業(yè)關(guān)鍵問題,解決方案覆蓋了各個領(lǐng)域还最,包括汽車西篓、銀行、保險憋活、生命科學(xué)岂津、制造業(yè)、石油和天然氣悦即、零售業(yè)及快消行業(yè)吮成、通訊業(yè)橱乱、以及公用事業(yè)等各個行業(yè)。
9.12: Mahout
Mahout 目的是“為快速創(chuàng)建可擴(kuò)展粱甫、高性能的機(jī)器學(xué)習(xí)應(yīng)用程序而打造一個環(huán)境”泳叠,主要特點是為可伸縮的算法提供可擴(kuò)展環(huán)境、面向Scala/Spark/H2O/Flink的新穎算法茶宵、Samsara(類似R的矢量數(shù)學(xué)環(huán)境)危纫,它還包括了用于在MapReduce上進(jìn)行數(shù)據(jù)挖掘的眾多算法。
開發(fā)平臺
開發(fā)平臺主要包括如下:
Lumify 乌庶,Lingual 种蝶,Beam ,Cascading 瞒大,HPCC
10.1:Lumify
Lumify 歸Altamira科技公司(以國家安全技術(shù)而聞名)所有螃征,這是一種開源大數(shù)據(jù)整合、分析和可視化平臺透敌。
Lumify 官網(wǎng)
10.2:Lingual
Lingual 是Cascading的高級擴(kuò)展盯滚,為Hadoop提供了一個ANSI SQL接口極大地簡化了應(yīng)用程序的開發(fā)和集成。Lingual實現(xiàn)了連接現(xiàn)有的商業(yè)智能(BI)工具酗电,優(yōu)化了計算成本魄藕,加快了基于Hadoop的應(yīng)用開發(fā)速度。
Lingual 官網(wǎng)
10.3:Beam
Beam 基于Java提供了統(tǒng)一的數(shù)據(jù)進(jìn)程管道開發(fā)撵术,并且能夠很好地支持Spark和Flink泼疑。提供很多在線框架,開發(fā)者無需學(xué)太多框架荷荤。
Beam 官網(wǎng)
10.4:Cascading
Cascading 是一個基于Hadoop建立的API退渗,用來創(chuàng)建復(fù)雜和容錯數(shù)據(jù)處理工作流。它抽象了集群拓?fù)浣Y(jié)構(gòu)和配置蕴纳,使得不用考慮背后的MapReduce会油,就能快速開發(fā)復(fù)雜的分布式應(yīng)用。
Cascading 官網(wǎng)
10.5:HPCC
HPCC 作為Hadoop之外的一種選擇古毛,是一個利用集群服務(wù)器進(jìn)行大數(shù)據(jù)分析的系統(tǒng)翻翩,HPCC在LexisNexis內(nèi)部使用多年,是一個成熟可靠的系統(tǒng)稻薇,包含一系列的工具嫂冻、一個稱為ECL的高級編程語言、以及相關(guān)的數(shù)據(jù)倉庫塞椎,擴(kuò)展性超強(qiáng)桨仿。
HPCC 官網(wǎng)