大資料利器2018版
阿新 • • 發佈:2018-12-07
類別 | 名稱 (可重點關注加粗部分) |
官網 | 備註 |
查詢引擎 | Phoenix | https://phoenix.apache.org/ | Salesforce公司出品,Apache HBase之上的一個SQL中間層,完全使用Java編寫 |
Presto | http://prestodb.io/ | Facebook開源的分散式SQL查詢引擎,適用於互動式分析查詢,資料量支援GB到PB位元組 | |
http://shark.cs.berkeley.edu/ |
|||
Pig | http://pig.apache.org/ | 基於Hadoop MapReduce的指令碼語言 | |
Cloudera Impala | http://www.cloudera.com/content/cloudera/en/products-and-services/cdh/impala.html | 參照Google Dremel實現,能執行在HDFS或HBase上,使用C++開發。Cloudera聲稱,基於SQL的Impala資料庫是面向Apache Hadoop的領先的開源分析資料庫。 |
|
Apache Drill | https://drill.apache.org/ | 參照Google Dremel實現,無主節點的實時的分散式查詢引擎。相容ANSI SQL(國際標準SQL語言)語法作為介面,支援對本地檔案,HDFS,HIVE, HBASE,MongeDB作為儲存的資料查詢,檔案格式支援Parquet、CSV、 TSV以及JSON這種無模式無關(schema-free)的資料。 | |
Apache Tajo | http://tajo.apache.org/ | 一個執行在YARN上支援SQL的分散式資料倉庫 |
|
Kylin | http://kylin.apache.org/ http://kylin.apache.org/cn/ |
一個開源的分散式分析引擎,提供Hadoop/Spark之上的SQL查詢介面及多維分析(OLAP)能力以支援超大規模資料,最初由eBay Inc. 開發並貢獻至開源社群。它能在亞秒內查詢巨大的Hive表。 | |
Hive | http://hive.apache.org/ | 基於Hadoop MapReduce的SQL查詢引擎 | |
Calcite | https://calcite.apache.org/ | 起源於Hive,源名optiq,2014年5月獨立出來後更名為Calcite,一個動態資料管理框架。它將資料儲存和資料處理分離出去,專注於成為配置應用與一個或者多個數據儲存位置以及資料處理引擎的中介軟體。獨立於儲存與執行的SQL解析、優化引擎,廣泛應用於各種離線、搜尋、實時查詢引擎,如Drill、Hive、Kylin、Solr、flink、Samza等。 | |
流式計算 | Facebook Puma | 實時資料流分析 | |
Twitter Rainbird | 分散式實時統計系統,如網站的點選統計 | ||
Yahoo S4 | http://incubator.apache.org/s4/ | Java開發的一個通用的、分散式的、可擴充套件的、分割槽容錯的、可插拔的無主架構的流式系統 | |
jStrom | https://github.com/alibaba/jstorm | 阿里開源的經過優化的Java版Storm | |
Flink | https://flink.apache.org/ | 到2018年,Flink已經很成熟了,生態也逐漸豐富,流式(實時)計算和離線計算通吃 | |
Twitter Storm | http://storm.incubator.apache.org/ | 使用Java和Clojure實現 | |
迭代計算 | Apache Hama | https://hama.apache.org/ | 建立在Hadoop上基於BSP(Bulk Synchronous Parallel)的計算框架,模仿了Google的Pregel。 |
Apache Giraph | https://giraph.apache.org/ | 建立在Hadoop上的可伸縮的分散式迭代圖處理系統,靈感來自BSP(bulk synchronous parallel)和Google的Pregel | |
HaLoop | https://code.google.com/p/haloop/ | 迭代的MapReduce | |
Apache Tez | https://tez.apache.org/ | 支援DAG作業的開源計算框架,它可以將多個有依賴的作業轉換為一個作業從而大幅提升DAG作業的效能。 | |
Twister | http://www.iterativemapreduce.org/ | 迭代的MapReduce | |
圖形資料庫 | FlockDB | https://github.com/twitter-archive/flockdb | 推特開發的FlockDB是一種非常快、擴充套件性非常好的圖形資料庫,擅長儲存社交網路資料,最近一次更新時間為2016年 |
Neo4j | https://neo4j.com/ | 基於Java的高效能的NOSQL圖形資料庫,它將結構化資料儲存在網路上而不是表中 | |
離線計算 | Hadoop MapReduce | http://hadoop.apache.org/ | 經典的大資料批處理系統 |
Berkeley Spark | http://spark.apache.org/ http://shark.cs.berkeley.edu/ |
使用Scala語言實現,和MapReduce有較大的競爭關係,效能強於MapReduce,也可做離線計算,但是秒級的,不如Flink毫秒級的 | |
Flink | https://flink.apache.org/ | 和Spark類似的,同時適應於實時計算和離線計算 | |
Apache Ignite | http://ignite.apache.org/ | 記憶體資料組織框架是一個高效能、整合化和分散式的記憶體計算和事務平臺 | |
DataTorrent | http://www.datatorrent.com/ | 基於Hadoop2.X構建的實時流式處理和分析平臺,每秒可以處理超過10億個實時事件 | |
嵌入式DB | SQLite | https://www.sqlite.org/ | 經典的嵌入式SQL庫 |
Firebird | http://www.firebirdsql.org/ | 從Interbase派生出來的,支援SQL,支援事務 | |
物件儲存 | Ozone | https://hadoop.apache.org/ozone/ | 2018新增的Hadoop新成員 |
鍵值儲存 | LevelDB | https://code.google.com/p/leveldb/ | Google開源的高效KV程式設計庫,注意它只是個庫 |
RocksDB | http://rocksdb.org/ | Facebook開源的可嵌入式的支援持久化的key-value儲存系統,基於Google的LevelDB,但提高了擴充套件性可以執行在多核處理器上 | |
HyperDex | http://hyperdex.org/ | 下一代KV儲存系統,支援strings、integers、floats、lists、maps和sets等豐富的資料型別 | |
TokyoCabinet | http://fallabs.com/tokyocabinet/ | 日本人Mikio Hirabayashi(平林幹雄)開發的一款DBM資料庫,注意它只是個庫(大名鼎鼎的DBM資料庫qdbm就是Mikio Hirabayashi開發的),讀寫非常快 | |
Voldemort | http://www.project-voldemort.com/voldemort/ | 一個分散式鍵值儲存系統,是Amazon Dynamo的一個開源克隆,LinkedIn開源 | |
Amazon Dynamo | https://github.com/dynamo/dynamo | 亞馬遜的KV模式的儲存平臺,無主架構 | |
Tair | http://tair.taobao.org/ | 淘寶出品的高效能、分散式、可擴充套件、高可靠的KV結構儲存系統,專為小檔案優化,並提供簡單易用的介面(類似Map),Tair支援Java和C版本的客戶端 | |
TiKV | https://github.com/tikv/tikv | Rust 語言編寫的分散式鍵值系統(KVS),它採用Raft協議保證資料的強一致性,同時使用MVCC+2PC的方式實現了分散式事務的支援 | |
Apache Accumulo | https://accumulo.apache.org/ | 一個可靠的、可伸縮的、高效能的排序分散式的KV儲存系統,參照Google Bigtable而設計,建立在Hadoop、Thrift和Zookeeper之上。 | |
Anna | https://github.com/ucbrise/anna | 伯克利RISE實驗室(RISE實驗室的前身是赫赫有名的伯克利AMP實驗室,開發了著名的Spark、Mesos、Tachyon等)推出的鍵值儲存資料庫,也是一個具備驚人的存取速度、超強的伸縮性和優秀的一致性的KVS | |
Redis | http://redis.io/ | 使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、單機版KV資料庫。從2010年3月15日起,Redis的開發工作由VMware主持 | |
表格儲存 | OceanBase | https://github.com/alibaba/oceanbase | 支援海量資料的高效能分散式資料庫系統,實現了數千億條記錄、數百TB資料上的跨行跨表事務 |
Amazon SimpleDB | http://aws.amazon.com/cn/simpledb/ | 一個可大規模伸縮、用 Erlang 編寫的高可用資料儲存 | |
Vertica | http://www.vertica.com/ | 惠普2011收購Vertica,Vertica是傳統的關係型資料庫,基於列儲存,同時支援MPP,使用標準的SQL查詢,可以和Hadoop/MapReduce進行整合 | |
Cassandra | http://cassandra.apache.org/ | Hadoop成員,Facebook於2008將Cassandra開源,基於O(1)DHT的完全P2P架構 | |
HyperTable | http://hypertable.org/ | 搜尋引擎公司Zvents針對Bigtable的C++開源實現 | |
FoundationDB | https://foundationdb.com/ | 支援ACID事務處理的NoSQL資料庫,提供非常好的效能、資料一致性和操作彈性 | |
PaxosStore | https://github.com/Tencent/paxosstore | 微信出品,參照Google MegaStore實現的分散式儲存系統,廣泛支撐微信線上應用,峰值過億TPS,執行在數千臺伺服器上。 | |
MemSQL | http://www.memsql.com/ | 前Facebook工程師創辦的,號稱世界上最快的分散式關係型資料庫,相容MySQL但快30倍,能實現每秒150萬次事務,原理是僅用記憶體並將SQL預編譯為C++。 | |
ScyllaDB | https://www.scylladb.com/ http://www.scylladb.cn/ |
由大神KVM之父Avi Kivity建立的NoSQL資料庫,世界級效能領先的NoSQL列儲存資料庫,C++改寫的Cassandra,完全相容Apache Cassandra | |
HBase | http://hbase.apache.org/ | Bigtable在Hadoop中的實現,最初是Powerset公司為了處理自然語言搜尋產生的海量資料而開展的專案 | |
時間序列資料庫 (TSDB) |
openTSDB | http://opentsdb.net/ | 基於HBase的分散式的、可伸縮的時間序列資料庫,和Grafana結合使用 |
KairosDB | https://kairosdb.github.io/ | 基於Cassandra的分散式的、可伸縮的時間序列資料庫 | |
Prometheus | https://prometheus.io/ | 開源的服務監控系統和時序列資料庫,由社交音樂平臺SoundCloud在2012年開發,常和Grafana結合使用 | |
Druid | http://druid.io/ | 注意不是阿里的Druid,開源的、快速和近實時的海量資料OLAP系統,誕生於Metamarkets,後核心人員創立了IMPLY公司開發Druid及相關產品,按時間來進行分割槽(Segment),並且是面向列的儲存 | |
RRDtool | https://oss.oetiker.ch/rrdtool/ | 輪詢式資料庫,適合時間序列的資料 | |
Graphite | https://graphiteapp.org/ | 時序資料庫,作用是儲存和聚合監控資料並繪製圖標,不負責資料的收集 | |
Pinot | https://github.com/linkedin/pinot | 來自 Linkedin的開源的實時、分散式OLAP資料儲存方案 | |
InfluxDB | https://github.com/influxdata/influxdb https://www.influxdata.com/ |
開源的時序資料庫,使用GO語言開發,特別適合用於處理和分析資源監控資料這種時序相關資料,但叢集版本收費,和Grafana結合使用 | |
檔案儲存 | CouchDB | http://couchdb.apache.org/ | 面向文件的資料儲存,號稱是“一款完全擁抱網際網路的資料庫”,它將資料儲存在JSON文件中,這種文件可以通過Web瀏覽器來查詢,並且用JavaScript來處理。它易於使用,在分散式上網路上具有高可用性和高擴充套件性。 |
MongoDB | https://www.mongodb.org/ | C++ 語言編寫的文件型資料庫 | |
Alluxio | https://www.alluxio.org/ | 原名Tachyon,2016改名為Alluxio,高容錯的以記憶體為中心的虛擬的分散式儲存系統,吞吐量要比HDFS高300多倍。加州大學伯克利分校的AMPLab基於Hadoop的核心元件開發出一個更快的版本Tachyon,它從底層重構了Hadoop平臺。 | |
KFS | http://code.google.com/p/kosmosfs/ | GFS的C++開源版本 | |
HDFS | http://hadoop.apache.org/ | GFS在Hadoop中的實現 | |
資源管理 | Twitter Mesos | http://mesos.apache.org/ | 開源分散式資源管理框架,它被稱為是分散式系統的核心。最初是由加州大學伯克利分校的AMPLab開發的,後在Twitter得到廣泛使用。 |
Hadoop Yarn | http://hadoop.apache.org/ | 類似於Mesos | |
日誌收集系統 | Facebook Scribe | https://github.com/facebook/scribe | Facebook開源的日誌收集系統,能夠從各種日誌源上收集日誌,儲存到一箇中央儲存系統(可以是NFS,分散式檔案系統等)上,以便於進行集中統計分析處理,常與Hadoop結合使用,Scribe用於向HDFS中Push日誌 |
Cloudera Flume | http://flume.apache.org/ | Cloudera提供的日誌收集系統,支援對日誌的實時性收集 | |
Logstash | http://www.logstash.net/ | 日誌管理、分析和傳輸工具,可配合kibana、ElasticSearch組建成日誌查詢系統 | |
Kibana | http://www.elasticsearch.org/overview/kibana/ | 為日誌提供友好的Web查詢頁面 | |
訊息系統 | StormMQ | http://stormmq.com/ | 基於netty的訊息佇列,Java語言開發 |
RocketMQ | https://rocketmq.apache.org/ | 阿里開源的類似於Kafka的分散式訊息佇列 | |
ZeroMQ | http://zeromq.org/ | 很底層的高效能網路庫 | |
RabbitMQ | https://www.rabbitmq.com/ | 在AMQP基礎上完整的,可複用的企業訊息系統 | |
Apache ActiveMQ | http://activemq.apache.org/ | 能力強勁的開源訊息匯流排 | |
PhxQueue | https://github.com/Tencent/phxqueue | 微信開源的一款基於Paxos協議實現的高可用、高吞吐和高可靠的分散式佇列,保證At-Least-Once Delivery。在微信內部廣泛支援微信支付、公眾平臺等多個重要業務。 | |
Jafka | https://github.com/adyliu/jafka | Java版本開源的、高效能的跨語言Kafka,最早是由Apache孵化的Kafka(由LinkedIn捐助給Apache)克隆而來 | |
Pulsar | https://pulsar.apache.org/ | 由雅虎開發並開源的下一代訊息系統,Kafka的競品 | |
Apache Kafka | http://kafka.apache.org/ | Linkedin於2010年12月份開源的分散式訊息系統,它主要用於處理活躍的流式資料,由Scala寫成 | |
分散式服務 | ZooKeeper | http://zookeeper.apache.org/ | 分散式鎖服務,PoxOS演算法的實現,對應Google的Chubby |
rethinkdb | https://github.com/rethinkdb/rethinkdb | 設計用來儲存 JSON 文件的分散式資料庫,可通過簡單操作實現多機分散式儲存。支援表的聯合和分組查詢。 特點: 簡單程式設計模型 JSON 資料模型和一致性 分散式聯合查詢、子查詢、聚合查詢和原子更新操作 Hadoop 風格的 map/reduce | |
Nacos | https://github.com/alibaba/nacos | 阿里開源的一個更易於構建雲原生應用的動態服務發現、配置和服務管理平臺 | |
PhxPaxos | https://github.com/tencent-wechat/phxpaxos | 微信後臺團隊自主研發的一套基於Paxos協議的多機狀態拷貝類庫。它以庫函式的方式嵌入到開發者的程式碼當中, 使得一些單機狀態服務可以擴充套件到多機器,從而獲得強一致性的多副本以及自動容災的特性。 這個類庫在微信服務裡面經過一系列的工程驗證,並且我們對它進行過大量的惡劣環境下的測試,使其在一致性的保證上更為健壯。 | |
QJM | http://hadoop.apache.org/ | Hadoop內建的JournalNode,用於NameNode元資料容災,儲存NameNode元資料日誌,節點間的資料同步可以考慮 | |
Bookeeper | https://bookkeeper.apache.org/ | 和JournalNode類似 | |
etcd | https://github.com/coreos/etcd | 一個高可用的鍵值儲存系統,主要用於共享配置和服務發現。etcd是由CoreOS開發並維護的,靈感來自於 ZooKeeper 和 Doozer,它使用Go語言編寫,並通過Raft一致性演算法處理日誌複製以保證強一致性。 | |
RPC | Apache Avro | http://avro.apache.org/ | Hadoop中的RPC |
PhxRPC | https://github.com/tencent-wechat/phxrpc | 微信後臺團隊推出的一個非常簡潔小巧的基於Protobuf的RPC框架(實現語言為C++),編譯生成的庫只有450K | |
sofa-pbrpc | https://github.com/baidu/sofa-pbrpc | 百度開源的,基於Protobuf的C++實現的RPC | |
Dubbo | https://dubbo.incubator.apache.org | 阿里開源的RPC,實現語言為Java | |
gRPC | http://www.grpc.io/ https://github.com/grpc/grpc |
一個高效能、通用的開源RPC框架,其由Google主要面向移動應用開發並基於HTTP/2協議標準而設計,基於ProtoBuf(Protocol Buffers)序列化協議開發,且支援眾多開發語言。 | |
Finagle | https://twitter.github.io/finagle/ | Twitter基於Netty開發的支援容錯的、協議無關的RPC框架 | |
Thrift | http://thrift.apache.org/ | RPC,支援C++/Java/PHP等眾多語言 | |
叢集管理 | Nagios | http://www.nagios.org/ | 監視系統執行狀態和網路資訊的監視系統 |
CDAP | https://github.com/caskdata/cdap | CAST DATA APPLICATION PLATFORM,開源的大資料應用統一集平臺,幫助應用開發者和系統管理員基於Hadoop技術棧來構建、測試、部署、管理資料應用程式,由Datasets、Programs、 Services、Tools等元件組成。 | |
Hue | http://gethue.com/ | 開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來 | |
Ganglia | http://ganglia.sourceforge.net/ | UC Berkeley發起的一個開源叢集監視專案,設計用於測量數以千計的節點。 | |
Ranger | https://hortonworks.com/apache/ranger/ | 一個集中式安全管理框架,它可以對Hadoop生態的元件如Hive、Hbase進行細粒度的資料訪問控制。通過操作Ranger控制檯,管理員可以輕鬆的通過配置策略來控制使用者訪問HDFS資料夾、HDFS檔案、資料庫、表、欄位許可權。這些策略可以為不同的使用者和組來設定,同時許可權可與hadoop無縫對接。 | |
Kafka Manager | https://github.com/yahoo/kafka-manager | Web視覺化Kafka管理軟體 | |
osquery | https://osquery.io/ | Facebook開源的一個SQL驅動作業系統檢測和分析工具,支援像SQL語句一樣查詢系統的各項指標,可以用於OSX和Linux作業系統,它使得底層作業系統分析和監控效能更加直觀 | |
Apache Ambari | http://ambari.apache.org/ | 一種基於Web的工具,支援Apache Hadoop叢集的供應、管理和監控。Ambari已支援大多數Hadoop元件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。Apache Ambari 支援HDFS、MapReduce、Hive、Pig、Hbase、Zookeepr、Sqoop和Hcatalog等的集中管理。 | |
基礎設施 | SSTable | 源於Google,orted String Table | |
RecordIO | 源於Google | ||
Flat Buffers | https://github.com/google/flatbuffers | 針對遊戲開發的,高效的跨平臺序列化庫,相比Proto Buffers開銷更小,因為Flat Buffers沒有解析過程 | |
Protocol Buffers | http://code.google.com/p/protobuf/ | Google公司開發的一種資料描述語言,類似於XML能夠將結構化資料序列化,可用於資料儲存、通訊協議等方面。它不依賴於語言和平臺並且可擴充套件性極強。 | |
Consistent Hashing | 1997年由麻省理工學院提出,目標是為了解決因特網中的熱點(Hot spot)問題,初衷和CARP十分類似,基本解決了在P2P環境中最為關鍵的問題——如何在動態的網路拓撲中分佈儲存和路由。 | ||
Netty | http://netty.io/ | JBOSS提供的一個java開源框架,提供非同步的、事件驅動的網路應用程式框架,用以快速開發高效能、高可靠性的網路伺服器和客戶端程式。 | |
Seastar | http://seastar.io/ | 現代硬體上的高效能C++非同步框架,Scylla完全基於Seastar庫,KVM之父Avi Kivity大神建立 | |
Proxygen | https://github.com/facebook/proxygen | Facebook開源的支援SPDY 3.1的HTTP框架 | |
libPhenom | https://github.com/facebook/libphenom | Facebook釋出的一個C語言事件框架,用於構建高效能和高可擴充套件的系統。支援多執行緒、提供記憶體管理和常用資料結構、json處理。 | |
BloomFilter | 布隆過濾器,1970年由布隆提出,是一個很長的二進位制向量和一系列隨機對映函式,可以用於檢索一個元素是否在一個集合中,優點是空間效率和查詢時間都遠遠超過一般的演算法,缺點是有一定的誤識別率和刪除困難。 | ||
搜尋引擎 | Nutch | https://nutch.apache.org/ | 開源Java 實現的搜尋引擎,誕生Hadoop的地方。 |
Lucene | http://lucene.apache.org/ | 一套資訊檢索工具包,但並不包含搜尋引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能。 | |
SolrCloud | 基於Solr和Zookeeper的分散式搜尋, Solr4.0 的核心元件之一,主要思想是使用 Zookeeper 作為叢集的配置資訊中心 | ||
Solr | https://lucene.apache.org/solr/ | Solr是基於Lucene的搜尋。 | |
ElasticSearch | http://www.elasticsearch.org/ http://www.elasticsearch.cn/ |
開源的(Apache2協議),分散式的,RESTful的,構建在Apache Lucene之上的的搜尋引擎。 | |
Sphinx | http://sphinxsearch.com | 一個基於SQL的全文檢索引擎,可結合MySQL、PostgreSQL做全文檢索,可提供比資料庫本身更專業的搜尋功能,單一索引可達1億條記錄,1000萬條記錄情況下的查詢速度為0.x秒(毫秒級)。 | |
SenseiDB | http://senseidb.com | Linkin公司開發的一個開源分散式實時半結構化資料庫,在全文索引的基礎封裝了Browse Query Language (BQL,類似SQL)的查詢語法。 | |
資料探勘 | Mahout | http://mahout.apache.org/ | Hadoop成員,目標是建立一個可擴充套件的機器學習庫 |
Iaas | OpenStack | https://www.openstack.org/ | 美國國家航空航天局和Rackspace合作研發的,以Apache許可證授權雲平臺管理的專案,它不是一個軟體。這個專案由幾個主要的元件組合起來完成一些具體的工作,旨在為公共及私有云的建設與管理提供軟體的開源專案。6個核心專案:Nova(計算,Compute),Swift(物件儲存,Object),Glance(映象,Image),Keystone(身份,Identity),Horizon(自助門戶,Dashboard),Quantum & Melange(網路&地址管理),另外還有若干社群專案,如Rackspace(負載均衡)、Rackspace(關係型資料庫)。 |
Docker | http://www.docker.io/ | 應用容器引擎,讓開發者可打包應用及依賴包到一個可移植的容器中,然後釋出到Linux機器上,也可實現虛擬化。 | |
Kubernetes | https://github.com/GoogleCloudPlatform/kubernetes/ | 由Google開源的,Docker編寫的容器編排引擎,支援自動化部署、大規模可伸縮、應用容器化管理。支援公有云,私有云,混合雲,多重雲。簡稱K8s,是用8代替8個字元“ubernete”而成的縮寫。是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。ETCD是Kubernetes提供預設的儲存系統,儲存所有叢集資料。 | |
Imctfy | https://github.com/google/Imctfy/ | Google開源的Linux容器 | |
關係資料庫 | PhxSQL | https://github.com/tencent-wechat/phxsql | 微信開源的基於MySQL的強一致高可用分散式資料庫 |
TiDB | https://github.com/pingcap/tidb |