史上最全的開源大資料工具,非常實用,請務必收藏!
<b>
</b>
<b>查詢引擎</b>
phoenix
salesforce公司出品,apache hbase之上的一個sql中間層,完全使用java編寫
stinger
原叫tez,下一代hive, hortonworks主導開發,運作在yarn上的dag計算架構
presto
facebook開源
spark sql
spark上的sql執行引擎
pig
基于hadoop mapreduce的腳本語言
cloudera impala
參照google dremel實作,能運作在hdfs或hbase上,使用c++開發
apache drill
參照google dremel實作
apache tajo
一個運作在yarn上支援sql的分布式資料倉庫
hive
基于hadoop mapreduce的sql查詢引擎
<b>流式計算</b>
facebook puma
實時資料流分析
twitter rainbird
分布式實時統計系統,如網站的點選統計
yahoo s4
java開發的一個通用的、分布式的、可擴充的、分區容錯的、可插拔的無主架構的流式系統
twitter storm
使用java和clojure實作
samza
samza是一個分布式的流式資料處理架構(streaming processing),它是基于kafka消息隊列來實作類實時的流式資料處理的。(準确的說,samza是通過子產品化的形式來使用kafka的,是以可以構架在其他消息隊列架構上,但出發點和預設實作是基于kafka)
datatorrent
基于hadoop2.x建構的實時流式處理和分析平台,每秒可以處理超過10億個實時事件
spark streaming
spark streaming是一種建構在spark上的實時計算架構,它擴充了spark處理大規模流式資料的能力。
apache flink
apache flink是一個高效、分布式、基于java實作的通用大資料分析引擎,它具有分布式 mapreduce一類平台的高效性、靈活性和擴充性以及并行資料庫查詢優化方案,它支援批量和基于流的資料分析,且提供了基于java和scala的api。
<b>疊代計算</b>
apache hama
建立在hadoop上基于bsp(bulk synchronous parallel)的計算架構,模仿了google的pregel。
apache giraph
建立在hadoop上的可伸縮的分布式疊代圖處理系統,靈感來自bsp(bulk synchronous parallel)和google的pregel
haloop
疊代的mapreduce
twister
spark graphx
graphx是 spark中用于圖(e.g., web-graphs and social networks)和圖并行計算(e.g., pagerank and collaborative filtering)的api,可以認為是graphlab(c++)和pregel(c++)在spark(scala)上的重寫及優化
<b>離線計算</b>
hadoop mapreduce
經典的大資料批處理系統
berkeley spark
使用scala語言實作,和mapreduce有較大的競争關系,性能強于mapreduce
<b>鍵值存儲</b>
leveldb
google開源的高效kv程式設計庫,注意它隻是個庫
rocksdb
facebook開源的,基于google的leveldb,但提高了擴充性可以運作在多核處理器上
hyperdex
下一代kv存儲系統,支援strings、integers、floats、lists、maps和sets等豐富的資料類型
tokyocabinet
日本人mikio hirabayashi(平林幹雄)開發的一款dbm資料庫,注意它隻是個庫(大名鼎鼎的dbm資料庫qdbm就是mikio hirabayashi開發的),讀寫非常快
voldemort
一個分布式鍵值存儲系統,是amazon dynamo的一個開源克隆,linkedin開源
amazon dynamo
亞馬遜的kv模式的存儲平台,無主架構
tair
淘寶出品的高性能、分布式、可擴充、高可靠的kv結構存儲系統,專為小檔案優化,并提供簡單易用的接口(類似map),tair支援java和c版本的用戶端
apache accumulo
一個可靠的、可伸縮的、高性能的排序分布式的kv存儲系統,參照google bigtable而設計,建立在hadoop、thrift和zookeeper之上。
redis
使用ansi c語言編寫、支援網絡、可基于記憶體亦可持久化的日志型、單機版kv資料庫。從2010年3月15日起,redis的開發工作由vmware主持
memcached
memcached 是一個高性能的分布式記憶體對象緩存系統,用于動态web應用以減輕資料庫負載。它通過在記憶體中緩存資料和對象來減少讀取資料庫的次數,進而提高動态、資料庫驅動網站的速度。memcached基于一個存儲鍵/值對的hashmap。其守護程序(daemon)是用c寫的,但是用戶端可以用任何語言來編寫,并通過memcached協定與守護程序通信。
oceanbase
支援海量資料的高性能分布式資料庫系統,實作了數千億條記錄、數百tb資料上的跨行跨表事務
amazon simpledb
一個可大規模伸縮、用 erlang 編寫的高可用資料存儲
vertica
惠普2011收購vertica,vertica是傳統的關系型資料庫,基于列存儲,同時支援mpp,使用标準的sql查詢,可以和hadoop/mapreduce進行內建
cassandra
hadoop成員,facebook于2008将cassandra開源,基于o(1)dht的完全p2p架構
hypertable
搜尋引擎公司zvents針對bigtable的c++開源實作
foundationdb
支援acid事務處理的nosql資料庫,提供非常好的性能、資料一緻性和操作彈性
hbase
bigtable在hadoop中的實作,最初是powerset公司為了處理自然語言搜尋産生的海量資料而開展的項目
<b>檔案存儲</b>
couchdb
面向文檔的資料存儲
mongodb
文檔資料庫
tachyon
加州大學伯克利分校的amplab基于hadoop的核心元件開發出一個更快的版本tachyon,它從底層重構了hadoop平台。
kfs
gfs的c++開源版本
hdfs
gfs在hadoop中的實作
<b>資源管理</b>
twitter mesos
google borg的翻版
hadoop yarn
類似于mesos
<b>日志收集系統</b>
facebook scribe
facebook開源的日志收集系統,能夠從各種日志源上收集日志,存儲到一個中央存儲系統(可以是nfs,分布式檔案系統等)上,以便于進行集中統計分析處理,常與hadoop結合使用,scribe用于向hdfs中push日志
cloudera flume
cloudera提供的日志收集系統,支援對日志的實時性收集
logstash
日志管理、分析和傳輸工具,可配合kibana、elasticsearch組建成日志查詢系統
fluentd
fluentd是一個日志收集系統,它的特點在于其各部分均是可定制化的,你可以通過簡單的配置,将日志收集到不同的地方。開源社群已經貢獻了下面一些存儲插件:mongodb, redis, couchdb,amazon s3, amazon sqs, scribe, 0mq, amqp, delayed, growl 等等。
kibana
為日志提供友好的web查詢頁面
<b>消息系統</b>
stormmq
zeromq
很底層的高性能網絡庫
rabbitmq
在amqp基礎上完整的,可複用的企業消息系統
apache activemq
能力強勁的開源消息總線
jafka
開源的、高性能的、跨語言分布式消息系統,最早是由apache孵化的kafka(由linkedin捐助給apache)克隆而來
apache kafka
linkedin于2010年12月份開源的分布式消息系統,它主要用于處理活躍的流式資料,由scala寫成
未完待續