当前,整个互联网正在从IT时代向DT时代演进,大数据技术也正在助力企业和公众敲开DT世界大门。当今“大数据”一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明、新服务和新的发展机遇。
为了帮助大家更好深入了解大数据,云栖社区组织翻译了GitHub Awesome Big Data资源,供大家参考。本资源类型主要包括:大数据框架、论文等实用资源集合。
五月直播季迅猛来袭!5月13日20点,直播《虎嗅网架构演讲》,点击报名:https://yq.aliyun.com/webinar/join/13
在本次分享中,虎嗅网联合创始人韩祖利将为大家分享虎嗅网云上架构实践经验,包括如何打造高效图片系统、如何做好主动式缓存管理,以及使用云服务的经验。同时,也会从一个老司机的角度分享如何做好系统架构设计。
资源列表:
-
关系数据库管理系统(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,用于Map Reduce工作的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-attached Storage)文件系统;
-
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上的SQL RDBMS,并带有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。