1. 程式人生 > >史上最全的“大資料”學習資源(上)

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

資源列表:

  •   關係資料庫管理系統(RDBMS)
  •   框架
  •   分散式程式設計
  •   分散式檔案系統
  •   檔案資料模型
  •   Key -Map 資料模型
  •   鍵-值資料模型
  •   圖形資料模型
  •   NewSQL資料庫
  •   列式資料庫
  •   時間序列資料庫
  •   類SQL處理
  •   資料攝取
  •   服務程式設計
  •   排程
  •   機器學習
  •   基準測試
  •   安全性
  •   系統部署
  •   應用程式
  •   搜尋引擎與框架
  •   MySQL的分支和演化
  •   PostgreSQL的分支和演化
  •   Memcached的分支和演化
  •   嵌入式資料庫
  •   商業智慧
  •   資料視覺化
  •   物聯網和感測器
  •   文章
  •   論文
  •   視訊

關係資料庫管理系統RDBMS

  •   MySQL:世界最流行的開源資料庫;
  •   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 Storm:Twitter流處理框架,也可用於YARN;
  •   Apache Samza:基於Kafka和YARN的流處理框架;
  •   Apache Tez:基於YARN,用於執行任務中的複雜DAG(有向無環圖);
  •   Apache Twill:基於YARN的抽象概念,用於減少開發分散式應用程式的複雜度;
  •   Cheetah:在MapReduce之上的高效能、自定義資料倉庫;
  •   DataTorrent StrAM:為實時引擎,用於以儘可能暢通的方式、最小的開支和對效能最小的影響,實現分散式、非同步、實時的記憶體大資料計算;
  •   Facebook Corona:為Hadoop做優化處理,從而消除單點故障;
  •   Netflix PigPen:為MapReduce,用於編譯成Apache Pig;
  •   Nokia Disco:由Nokia開發的MapReduc獲取、轉換和分析資料;
  •   JAQL:用於處理結構化、半結構化和非結構化資料工作的宣告性程式語言;
  •   Kite:為一組庫、工具、例項和文件集,用於使在Hadoop的生態系統上建立系統更加容易;
  •   Onyx:分散式雲端計算;
  •   Pydoop:用於Hadoop的Python MapReduce和HDFS API;
  •   Streamdrill:用於計算基於不同時間視窗的事件流的活動,並找到最活躍的一個;
  •   Tuktu:易於使用的用於分批處理和流計算的平臺,通過Scala、 Akka和Play所建;
  •   Twitter Scalding:基於Cascading,用於Map Reduce工作的Scala庫;
  •   Twitter Summingbird:在Twitter上使用Scalding和Storm串流MapReduce;
  •   Twitter TSAR:Twitter上的時間序列聚合器。

分散式檔案系統

檔案資料模型

  •   Crate Data:是一個開源的大規模可擴充套件的資料儲存,需要零管理模式;
  •   Facebook Apollo:Facebook的Paxos演算法,類似於NoSQL資料庫;
  •   jumboDB:基於Hadoop的面向文件的資料儲存;
  •   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授權,面向列的分散式資料儲存;
  •   Google Cloud Datastore:為完全管理型的無模式資料庫,用於儲存在BigTable上非關係型資料;
  •   Hypertable:由BigTable授權,面向列的分散式資料儲存;
  •   InfiniDB:通過MySQL的介面訪問,並使用大規模並行處理進行並行查詢;
  •   Tephra:用於HBase處理;

鍵-值資料模型

  •   Aerospike:支援NoSQL的快閃記憶體優化,資料儲存在記憶體。開源,“’C’(不是Java或Erlang)中的伺服器程式碼可精確地調整從而避免上下文切換和記憶體拷貝”。
  •   Amazon DynamoDB:分散式鍵/值儲存,Dynamo論文的實現;
  •   Edis:為替代Redis的協議相容的伺服器;
  •   ElephantDB:專門研究Hadoop中資料匯出的分散式資料庫;
  •   GridDB:適用於儲存在時間序列中的感測器資料;
  •   LinkedIn Krati:簡單的永續性資料儲存,擁有低延遲和高吞吐量;
  •   Redis:記憶體中的鍵值資料儲存;
  •   Riak:分散式資料儲存;
  •   Storehaus:Twitter開發的非同步鍵值儲存的庫;
  •   Tarantool:一個高效的NoSQL資料庫和Lua應用伺服器;
  •   TiKV:由Google Spanner和HBase授權,Rust提供技術支援的分散式鍵值資料庫;
  •   TreodeDB:可複製、共享的鍵-值儲存,能提供多行原子寫入。

圖形資料模型

  •   Apache Giraph:基於Hadoop的Pregel實現;
  •   ArangoDB:多層模型分散式資料庫;
  •   DGraph:一個可擴充套件的、分散式、低時延、高吞吐量的圖形資料庫,旨在為Google生產水平規模和吞吐量提供足夠的低延遲,用於TB級的結構化資料的實時使用者查詢;
  •   Facebook TAO:TAO是facebook廣泛用來儲存和服務於社交圖形的分散式資料儲存;
  •   GCHQ Gaffer:GCHQ中的Gaffer是一個易於儲存大規模圖形的框架,其中節點和邊緣都有統計資料;
  •   GraphLab PowerGraph:核心C ++ GraphLab API和建立在GraphLab API之上的高效能機器學習和資料探勘工具包的集合;
  •   GraphX:Spark中的彈性分散式圖形系統;
  •   Infovore:以RDF為中心的Map / Reduce框架;
  •   MapGraph:用於在GPU上大規模並行圖形處理;
  •   Neo4j:完全用Java寫入的圖形資料庫;
  •   Titan:建於Cassandra的分散式圖形資料庫;

NewSQL資料庫

  •   Actian Ingres:由商業支援,開源的SQL關係資料庫管理系統;
  •   Amazon RedShift:基於PostgreSQL的資料倉庫服務;
  •   BayesDB:面向統計數值的SQL資料庫;
  •   CitusDB:通過分割槽和複製橫向擴充套件PostgreSQL;
  •   Cockroach:可擴充套件、地址可複製、交易型的資料庫;
  •   Datomic:旨在產生可擴充套件、靈活的智慧應用的分散式資料庫;
  •   Google F1:建立在Spanner上的分散式SQL資料庫;
  •   H-Store:是一個實驗性主存並行資料庫管理系統,用於聯機事務處理(OLTP)應用的優化;
  •   Haeinsa:基於Percolator,HBase的線性可擴充套件多行多表交易庫;
  •   HandlerSocket:MySQL/MariaDB的NoSQL外掛;
  •   MemSQL:記憶體中的SQL資料庫,其中有優化的快閃記憶體列儲存;
  •   NuoDB:SQL / ACID相容的分散式資料庫;
  •   Pivotal GemFire XD:記憶體中低延時的分散式SQL資料儲存,可為記憶體列表資料提供SQL介面,在HDFS中較持久化;
  •   SAP HANA:是在記憶體中面向列的關係型資料庫管理系統;
  •   SenseiDB:分散式實時半結構化的資料庫;
  •   Sky:用於行為資料的靈活、高效能分析的資料庫;
  •   SymmetricDS:用於檔案和資料庫同步的開源軟體;
  •   Map-D:為GPU記憶體資料庫,也為大資料分析和視覺化平臺;
  •   TiDB:TiDB是分散式SQL資料庫,基於谷歌F1的設計靈感;
  •   VoltDB:自稱為最快的記憶體資料庫。

列式資料庫

注意:請在鍵-值資料模型 閱讀相關注釋。

  •   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 Hive:Hadoop的類SQL資料倉庫系統;
  •   Apache Optiq:一種框架,可允許高效的查詢翻譯,其中包括異構性及聯合性資料的查詢;
  •   Apache Phoenix:Apache Phoenix 是 HBase 的 SQL 驅動;
  •   Pivotal HAWQ:Hadoop的類SQL的資料倉庫系統;
  •   RainstorDB:用於儲存大規模PB級結構化和半結構化資料的資料庫;
  •   Spark Catalyst:用於Spark和Shark的查詢優化框架;
  •   SparkSQL:使用Spark操作結構化資料;
  •   Splice Machine:一個全功能的Hadoop上的SQL RDBMS,並帶有ACID事務;
  •   Stinger:用於Hive的互動式查詢;
  •   Tajo:Hadoop的分散式資料倉庫系統;
  •   Trafodion:為企業級的SQL-on-HBase針對大資料的事務或業務工作負載的解決方案。

資料攝取

  •   Apache Sqoop:在Hadoop和結構化的資料儲存區之間傳送資料的工具;
  •   Cloudera Morphlines:幫助 Solr、HBase和HDFS完成ETL的框架;
  •   Fluentd:採集事件和日誌的工具;
  •   Google Photon:實時連線多個數據流的分散式計算機系統,具有高可擴充套件性和低延遲性;
  •   Heka:開源流處理軟體系統;
  •   HIHO:用Hadoop連線不同資料來源的框架;
  •   Kestrel:分散式訊息佇列系統;
  •   Logstash:用於管理事件和日誌的工具;
  •   Netflix Suro:像基於Chukwa 的Storm和Samza一樣的日誌聚合器;
  •   Skizze:是一種資料儲存略圖,使用概率性資料結構來處理計數、略圖等相關的問題;