當前,整個互聯網正在從IT時代向DT時代演進,大數據技術也正在助力企業和公衆敲開DT世界大門。當今「大數據」一詞的重點其實已經不只在於數據規模的定義,它更表明着信息技術發展進入了一個新的時代,表明着爆炸性的數據信息給傳統的計算技術和信息技術帶來的技術挑戰和困難,表明着大數據處理所需的新的技術和方法,也表明着大數據分析和應用所帶來的新發明、新服務和新的發展機遇。
php
爲了幫助你們更好深刻了解大數據,雲棲社區組織翻譯了GitHub Awesome Big Data資源,供你們參考。本資源類型主要包括:大數據框架、論文等實用資源集合。html
資源列表:
mysql
關係數據庫管理系統(RDBMS)git
框架github
分佈式編程redis
分佈式文件系統算法
文件數據模型sql
Key -Map數據模型mongodb
鍵-值數據模型數據庫
圖形數據模型
NewSQL數據庫
列式數據庫
時間序列數據庫
類SQL處理
數據攝取
服務編程
調度
機器學習
基準測試
安全性
系統部署
應用程序
搜索引擎與框架
MySQL的分支和演化
PostgreSQL的分支和演化
Memcached的分支和演化
嵌入式數據庫
商業智能
數據可視化
物聯網和傳感器
文章
論文
視頻
關係數據庫管理系統(RDBMS)
MySQL:世界最流行的開源數據庫;
PostgreSQL:世界最早進的開源數據庫;
Oracle數據庫:對象-關係型數據庫管理系統。
框架
Apache Hadoop:分佈式處理架構,結合了MapReduce(並行處理)、YARN(做業調度)和HDFS(分佈式文件系統);
Tigon:高吞吐量實時流處理框架。
分佈式編程
AddThis Hydra:最初在AddThis上開發的分佈式數據處理和存儲系統;
AMPLab SIMR:用在Hadoop MapReduce v1上運行Spark;
Apache Beam:爲統一的模型以及一套用於定義和執行數據處理工做流的特定SDK語言;
Apache Crunch:一個簡單的Java API,用於執行在普通的MapReduce實現時比較單調的鏈接、數據聚合等任務;
Apache DataFu:由LinkedIn開發的針對Hadoop and和Pig的用戶定義的函數集合;
Apache Flink:具備高性能的執行時間和自動程序優化;
Apache Gora:內存中的數據模型和持久性框架;
Apache Hama:BSP(總體同步並行)計算框架;
Apache MapReduce:在集羣上使用並行、分佈式算法處理大數據集的編程模型;
Apache Pig:Hadoop中,用於處理數據分析程序的高級查詢語言;
Apache REEF:用來簡化和統一低層大數據系統的保留性評估執行框架;
Apache S4:S4中流處理與實現的框架;
Apache Spark:內存集羣計算框架;
Apache Spark Streaming:流處理框架,同時是Spark的一部分;
Apache Storm:Twitter流處理框架,也可用於YARN;
Apache Samza:基於Kafka和YARN的流處理框架;
Apache Tez:基於YARN,用於執行任務中的複雜DAG(有向無環圖);
Apache Twill:基於YARN的抽象概念,用於減小開發分佈式應用程序的複雜度;
Cascalog:數據處理和查詢庫;
Cheetah:在MapReduce之上的高性能、自定義數據倉庫;
Concurrent Cascading:在Hadoop上的數據管理/分析框架;
Damballa Parkour:用於Clojure的MapReduce庫;
Datasalt Pangool:可選擇的MapReduce範例;
DataTorrent StrAM:爲實時引擎,用於以儘量暢通的方式、最小的開支和對性能最小的影響,實現分佈式、異步、實時的內存大數據計算;
Facebook Corona:爲Hadoop作優化處理,從而消除單點故障;
Facebook Peregrine:MapReduce框架;
Facebook Scuba:分佈式內存數據存儲;
Google Dataflow:建立數據管道,以幫助其分析框架;
Netflix PigPen:爲MapReduce,用於編譯成Apache Pig;
Nokia Disco:由Nokia開發的MapReduc獲取、轉換和分析數據;
Google MapReduce:MapReduce框架;
Google MillWheel:容錯流處理框架;
JAQL:用於處理結構化、半結構化和非結構化數據工做的聲明性編程語言;
Kite:爲一組庫、工具、實例和文檔集,用於使在Hadoop的生態系統上創建系統更加容易;
Metamarkets Druid:用於大數據集的實時e框架;
Onyx:分佈式雲計算;
Pinterest Pinlater:異步任務執行系統;
Pydoop:用於Hadoop的Python MapReduce和HDFS API;
Rackerlabs Blueflood:多租戶分佈式測度處理系統;
Stratosphere:通用集羣計算框架;
Streamdrill:用於計算基於不一樣時間窗口的事件流的活動,並找到最活躍的一個;
Tuktu:易於使用的用於分批處理和流計算的平臺,經過Scala、Akka和Play所建;
Twitter Scalding:基於Cascading,用於MapReduce工做的Scala庫;
Twitter Summingbird:在Twitter上使用Scalding和Storm串流MapReduce;
Twitter TSAR:Twitter上的時間序列聚合器。
分佈式文件系統
Apache HDFS:在多臺機器上存儲大型文件的方式;
BeeGFS:之前是FhGFS,並行分佈式文件系統;
Ceph Filesystem:設計的軟件存儲平臺;
Disco DDFS:分佈式文件系統;
Facebook Haystack:對象存儲系統;
Google Colossus:分佈式文件系統(GFS2);
Google GFS:分佈式文件系統;
Google Megastore:可擴展的、高度可用的存儲;
GridGain:兼容GGFS、Hadoop內存的文件系統;
Lustre file system:高性能分佈式文件系統;
Quantcast File System QFS:開源分佈式文件系統;
Red Hat GlusterFS:向外擴展的附網存儲(Network-attachedStorage)文件系統;
Seaweed-FS:簡單的、高度可擴展的分佈式文件系統;
Alluxio:以可靠的存儲速率在跨集羣框架上文件共享;
Tahoe-LAFS:分佈式雲存儲系統;
文件數據模型
Actian Versant:商用的面向對象數據庫管理系統;
Crate Data:是一個開源的大規模可擴展的數據存儲,須要零管理模式;
Facebook Apollo:Facebook的Paxos算法,相似於NoSQL數據庫;
jumboDB:基於Hadoop的面向文檔的數據存儲;
LinkedIn Espresso:可橫向擴展的面向文檔的NoSQL數據存儲;
MarkLogic:模式不可知的企業版NoSQL數據庫技術;
MongoDB:面向文檔的數據庫系統;
RavenDB:一個事務性的,開源文檔數據庫;
RethinkDB:支持鏈接查詢和羣組依據等查詢的文檔型數據庫。
Key Map數據模型
注意:業內存在一些術語混亂,有兩個不一樣的東西都叫作「列式數據庫」。這裏列出的有一些是圍繞「key-map」數據模型而建的分佈式、持續型數據庫,其中全部的數據都有(可能綜合了)鍵,並與映射中的鍵-值對相關聯。在一些系統中,多個這樣的值映射能夠與鍵相關聯,而且這些映射被稱爲「列族」(具備映射值的鍵被稱爲「列」)。
另外一組也可稱爲「列式數據庫」的技術因其存儲數據的方式而有別於前一組,它在磁盤上或在存儲器中——而不是以傳統方式,即全部既定鍵的鍵值都相鄰着、逐行存儲。這些系統也彼此相鄰來存儲全部列值,可是要獲得給定列的全部值卻不須要之前那麼繁複的工做。
前一組在這裏被稱爲「key map數據模型」,這二者和Key-value數據模型之間的界限是至關模糊的。後者對數據模型有更多的存儲格式,可在列式數據庫中列出。若想了解更多關於這兩種模型的區分,可閱讀Daniel Abadi的博客:Distinguishing two major types of Column Stores。
Apache Accumulo:內置在Hadoop上的分佈式鍵/值存儲;
Apache Cassandra:由BigTable受權,面向列的分佈式數據存儲;
Apache HBase:由BigTable受權,面向列的分佈式數據存儲;
Facebook HydraBase:Facebook所開發的HBase的衍化品;
Google BigTable:面向列的分佈式數據存儲;
Google Cloud Datastore:爲徹底管理型的無模式數據庫,用於存儲在BigTable上非關係型數據;
Hypertable:由BigTable受權,面向列的分佈式數據存儲;
InfiniDB:經過MySQL的接口訪問,並使用大規模並行處理進行並行查詢;
Tephra:用於HBase處理;
Twitter Manhattan:Twitter的實時、多租戶分佈式數據庫。
鍵-值數據模型
Aerospike:支持NoSQL的閃存優化,數據存儲在內存。開源,「'C'(不是Java或Erlang)中的服務器代碼可精確地調整從而避免上下文切換和內存拷貝」。
Amazon DynamoDB:分佈式鍵/值存儲,Dynamo論文的實現;
Edis:爲替代Redis的協議兼容的服務器;
ElephantDB:專門研究Hadoop中數據導出的分佈式數據庫;
EventStore:分佈式時間序列數據庫;
GridDB:適用於存儲在時間序列中的傳感器數據;
LinkedIn Krati:簡單的持久性數據存儲,擁有低延遲和高吞吐量;
Linkedin Voldemort:分佈式鍵/值存儲系統;
Oracle NoSQL Database:Oracle公司開發的分佈式鍵值數據庫;
Redis:內存中的鍵值數據存儲;
Riak:分散式數據存儲;
Storehaus:Twitter開發的異步鍵值存儲的庫;
Tarantool:一個高效的NoSQL數據庫和Lua應用服務器;
TiKV:由Google Spanner和HBase受權,Rust提供技術支持的分佈式鍵值數據庫;
TreodeDB:可複製、共享的鍵-值存儲,能提供多行原子寫入。
圖形數據模型
Apache Giraph:基於Hadoop的Pregel實現;
Apache Spark Bagel:可實現Pregel,爲Spark的一部分;
ArangoDB:多層模型分佈式數據庫;
DGraph:一個可擴展的、分佈式、低時延、高吞吐量的圖形數據庫,旨在爲Google生產水平規模和吞吐量提供足夠的低延遲,用於TB級的結構化數據的實時用戶查詢;
Facebook TAO:TAO是facebook普遍用來存儲和服務於社交圖形的分佈式數據存儲;
GCHQ Gaffer:GCHQ中的Gaffer是一個易於存儲大規模圖形的框架,其中節點和邊緣都有統計數據;
Google Cayley:開源圖形數據庫;
Google Pregel:圖形處理框架;
GraphLab PowerGraph:核心C ++ GraphLab API和創建在GraphLab API之上的高性能機器學習和數據挖掘工具包的集合;
GraphX:Spark中的彈性分佈式圖形系統;
Gremlin:圖形追蹤語言;
Infovore:以RDF爲中心的Map / Reduce框架;
Intel GraphBuilder:在Hadoop上構建大規模圖形的工具;
MapGraph:用於在GPU上大規模並行圖形處理;
Neo4j:徹底用Java寫入的圖形數據庫;
OrientDB:文檔和圖形數據庫;
Phoebus:大型圖形處理框架;
Titan:建於Cassandra的分佈式圖形數據庫;
Twitter FlockDB:分佈式圖形數據庫。
NewSQL數據庫
Actian Ingres:由商業支持,開源的SQL關係數據庫管理系統;
Amazon RedShift:基於PostgreSQL的數據倉庫服務;
BayesDB:面向統計數值的SQL數據庫;
CitusDB:經過分區和複製橫向擴展PostgreSQL;
Cockroach:可擴展、地址可複製、交易型的數據庫;
Datomic:旨在產生可擴展、靈活的智能應用的分佈式數據庫;
FoundationDB:由F1授意的分佈式數據庫;
Google F1:創建在Spanner上的分佈式SQL數據庫;
Google Spanner:全球性的分佈式半關係型數據庫;
H-Store:是一個實驗性主存並行數據庫管理系統,用於聯機事務處理(OLTP)應用的優化;
Haeinsa:基於Percolator,HBase的線性可擴展多行多表交易庫;
HandlerSocket:MySQL/MariaDB的NoSQL插件;
InfiniSQL:無限可擴展的RDBMS;
MemSQL:內存中的SQL數據庫,其中有優化的閃存列存儲;
NuoDB:SQL / ACID兼容的分佈式數據庫;
Oracle TimesTen in-Memory Database:內存中具備持久性和可恢復性的關係型數據庫管理系統;
Pivotal GemFire XD:內存中低延時的分佈式SQL數據存儲,可爲內存列表數據提供SQL接口,在HDFS中較持久化;
SAP HANA:是在內存中面向列的關係型數據庫管理系統;
SenseiDB:分佈式實時半結構化的數據庫;
Sky:用於行爲數據的靈活、高性能分析的數據庫;
SymmetricDS:用於文件和數據庫同步的開源軟件;
Map-D:爲GPU內存數據庫,也爲大數據分析和可視化平臺;
TiDB:TiDB是分佈式SQL數據庫,基於谷歌F1的設計靈感;
VoltDB:自稱爲最快的內存數據庫。
列式數據庫
注意:請在鍵-值數據模型閱讀相關注釋。
Columnar Storage:解釋什麼是列存儲以及什麼時候會須要用到它;
Actian Vector:面向列的分析型數據庫;
C-Store:面向列的DBMS;
MonetDB:列存儲數據庫;
Parquet:Hadoop的列存儲格式;
Pivotal Greenplum:專門設計的、專用的分析數據倉庫,相似於傳統的基於行的工具,提供了一個列式工具;
Vertica:用來管理大規模、快速增加的大量數據,當用於數據倉庫時,可以提供很是快的查詢性能;
Google BigQuery:谷歌的雲產品,由其在Dremel的創始工做提供支持;
Amazon Redshift:亞馬遜的雲產品,它也是基於柱狀數據存儲後端。
時間序列數據庫
Cube:使用MongoDB來存儲時間序列數據;
Axibase Time Series Database:在HBase之上的分佈式時間序列數據庫,它包括內置的Rule Engine、數據預測和可視化;
Heroic:基於Cassandra和Elasticsearch的可擴展的時間序列數據庫;
InfluxDB:分佈式時間序列數據庫;
Kairosdb:相似於OpenTSDB但會考慮到Cassandra;
OpenTSDB:在HBase上的分佈式時間序列數據庫;
Prometheus:一種時間序列數據庫和服務監測系統;
Newts:一種基於Apache Cassandra的時間序列數據庫。
類SQL處理
Actian SQL for Hadoop:高性能交互式的SQL,可訪問全部的Hadoop數據;
Apache Drill:由Dremel授意的交互式分析框架;
Apache HCatalog:Hadoop的表格和存儲管理層;
Apache Hive:Hadoop的類SQL數據倉庫系統;
Apache Optiq:一種框架,可容許高效的查詢翻譯,其中包括異構性及聯合性數據的查詢;
Apache Phoenix:Apache Phoenix是HBase的SQL驅動;
Cloudera Impala:由Dremel授意的交互式分析框架;
Concurrent Lingual:Cascading中的類SQL查詢語言;
Datasalt Splout SQL:用於大數據集的完整的SQL查詢工具;
Facebook PrestoDB:分佈式SQL查詢工具;
Google BigQuery:交互式分析框架,Dremel的實現;
Pivotal HAWQ:Hadoop的類SQL的數據倉庫系統;
RainstorDB:用於存儲大規模PB級結構化和半結構化數據的數據庫;
Spark Catalyst:用於Spark和Shark的查詢優化框架;
SparkSQL:使用Spark操做結構化數據;
Splice Machine:一個全功能的Hadoop上的SQLRDBMS,並帶有ACID事務;
Stinger:用於Hive的交互式查詢;
Tajo:Hadoop的分佈式數據倉庫系統;
Trafodion:爲企業級的SQL-on-HBase針對大數據的事務或業務工做負載的解決方案。
數據攝取
Amazon Kinesis:大規模數據流的實時處理;
Apache Chukwa:數據採集系統;
Apache Flume:管理大量日誌數據的服務;
Apache Kafka:分佈式發佈-訂閱消息系統;
Apache Sqoop:在Hadoop和結構化的數據存儲區之間傳送數據的工具;
Cloudera Morphlines:幫助Solr、HBase和HDFS完成ETL的框架;
Facebook Scribe:流日誌數據聚合器;
Fluentd:採集事件和日誌的工具;
Google Photon:實時鏈接多個數據流的分佈式計算機系統,具備高可擴展性和低延遲性;
Heka:開源流處理軟件系統;
HIHO:用Hadoop鏈接不一樣數據源的框架;
Kestrel:分佈式消息隊列系統;
LinkedIn Databus:對數據庫更改捕獲的事件流;
LinkedIn Kamikaze:壓縮已分類整型數組的程序包;
LinkedIn White Elephant:日誌聚合器和儀表板;
Logstash:用於管理事件和日誌的工具;
Netflix Suro:像基於Chukwa的Storm和Samza同樣的日誌聚合器;
Pinterest Secor:是實現Kafka日誌持久性的服務;
Linkedin Gobblin:LinkedIn的通用數據攝取框架;
Skizze:是一種數據存儲略圖,使用機率性數據結構來處理計數、略圖等相關的問題;
StreamSets Data Collector:連續大數據採集的基礎設施,可簡單地使用IDE。
以上爲「史上最全的「大數據」學習資源(上)」的所有內容,敬請期待下一節。
編譯自:https://github.com/onurakpolat/awesome-bigdata
譯者:劉崇鑫 校對:王殿進
若是發現原文翻譯有誤,請郵件通知雲棲社區(yqeditor@list.alibaba-inc.com),感謝您的支持。