史上最全的“大資料”學習資源(上)

weixin_33860722發表於2017-04-05

當前,整個網際網路正在從IT時代向DT時代演進,大資料技術也正在助力企業和公眾敲開DT世界大門。當今“大資料”一詞的重點其實已經不僅在於資料規模的定義,它更代表著資訊科技發展進入了一個新的時代,代表著爆炸性的資料資訊給傳統的計算技術和資訊科技帶來的技術挑戰和困難,代表著大資料處理所需的新的技術和方法,也代表著大資料分析和應用所帶來的新發明、新服務和新的發展機遇。

為了幫助大家更好深入瞭解大資料,雲棲社群組織翻譯了GitHub Awesome Big Data資源,供大家參考。本資源型別主要包括:大資料框架、論文等實用資源集合。

資源列表:

關聯式資料庫管理系統(RDBMS)

框架

分散式程式設計

分散式檔案系統

檔案資料模型

Key -Map資料模型

鍵-值資料模型

圖形資料模型

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),感謝您的支援。

史上最全的“大資料”學習資源(下)

相關文章