
| 论文 | 解决问题 |
|---|---|
| Google File System | 主要解决大数据分布式存储的问题 |
| Google MapReduce | 主要解决大数据分布式计算的问题 |
| Google BigTable | 主要解决大数据分布式查询的问题 |
| 编号 | 优点 |
|---|---|
| 1 | 成本降低、能用PC机,就不用大型机和高端存储 |
| 2 | 软件容错硬件故障视为常态,通过软件保证可靠性 |
| 3 | 简化并行分布式计算,无须控制节点同步和数据交换 |
| 大数据领域 | 常用工具 |
|---|---|
| 分布式存储 | 主要包含Hadoop HDFS和Kafka等 |
| 分布式计算 | 包括批处理和流计算,主要包含Hadoop MapReduce、Spark和Flink等 |
| 分布式查询 | 主要包括Hive、HBase、Kylin、Impala等 |
| 分布式挖掘 | 主要包括Spark ML和Alink等 |



| 时间 | 事件 |
|---|---|
| 2008年1月 | Hadoop成为Apache顶级项目。 |
| 2008年6月 | Hadoop的第一个SQL框架——Hive成为了Hadoop的子项目。 |
| 2009年7月 | MapReduce 和 Hadoop Distributed File System (HDFS) 成为Hadoop项目的独立子项目。 |
| 2009年7月 | Avro 和 Chukwa 成为Hadoop新的子项目。 |
| 2010年5月 | Avro脱离Hadoop项目,成为Apache顶级项目。 |
| 2010年5月 | HBase脱离Hadoop项目,成为Apache顶级项目。 |
| 2010年9月 | Hive脱离Hadoop,成为Apache顶级项目。 |
| 2010年9月 | Pig脱离Hadoop,成为Apache顶级项目。 |
| 2010年-2011年 | 扩大的Hadoop社区忙于建立大量的新组件(Crunch,Sqoop,Flume,Oozie等)来扩展Hadoop的使用场景和可用性。 |
| 2011年1月 | ZooKeeper 脱离Hadoop,成为Apache顶级项目。 |
| 2011年12月 | Hadoop1.0.0版本发布,标志着Hadoop已经初具生产规模。 |
| 2012年5月 | Hadoop 2.0.0-alpha版本发布,这是Hadoop-2.x系列中第一个(alpha)版本。与之前的Hadoop-1.x系列相比,Hadoop-2.x版本中加入了YARN,YARN成为了Hadoop的子项目。 |
| 2012年10月 | Impala加入Hadoop生态圈。 |
| 2013年10月 | Hadoop2.0.0版本发布,标志着Hadoop正式进入MapReduce v2.0时代。 |
| 2014年2月 | Spark开始代替MapReduce成为Hadoop的默认执行引擎,并成为Apache顶级项目。 |
| 2017年12月 | 继Hadoop3.0.0的四个Alpha版本和一个Beta版本后,第一个可用的Hadoop 3.0.0版本发布。 |


| 场景 | 说明 |
|---|---|
| 密集型写应用 | 写入量巨大,而相对读数量较小的应用,比如消息系统的历史消息,游戏的日志等。 |
| 查询逻辑简单的应用 | HBase只支持基于rowkey的查询,而像SQL中的join等查询语句,它并不支持。 |
| 对性能和可靠性要求非常高的应用 | 由于HBase本身没有单点故障,可用性非常高。它支持在线扩展节点,即使应用系统的数据在一段时间内呈井喷式增长,也可以通过横向扩展来满足功能要求。 |
| 优点 | 说明 |
|---|---|
| 非常快的计算速度 | 它主要在内存中计算,因此在需要反复迭代的算法上,优势非常明显,比Hadoop快100倍。 |
| 易用性 | 它大概提供了80多个高级运算符,包括各种转换、聚合等操作。这相对于Hadoop组件中提供的map和reduce两大类操作来说,丰富了很多,因此可以更好地适应复杂数据的逻辑处理。 |
| 通用性 | 它除了自身不带数据存储外,其他大数据常见的业务需求,比如批处理、流计算、图计算和机器学习等都有对应的组件。因此,开发者通过Spark提供的各类组件,如Spark SQL、SparkStreaming、Spark MLlib和Spark GraphX等,可以在同一个应用程序中无缝组合使用这些库。 |
| 支持多种资源管理器 | 它支持Hadoop YARN、Apache Mesos,以及Spark自带的Standalone集群管理器。 |
| 应用场景 | 简单说明 |
|---|---|
| 发布和订阅 | 类似一个消息系统,可以读写流式数据 |
| 流数据处理 | 编写可扩展的流处理应用程序,可用于实时事件响应的场景 |
| 数据存储 | 安全地将流式的数据存储在一个分布式、有副本备份且容错的集群 |
| API | 作用 |
|---|---|
| DataSet API | 对静态数据进行批处理操作,将静态数据抽象成分布式的数据集,用户可以方便地使用Flink提供的各种操作符,对分布式数据集进行处理。 |
| DataStream API | 对数据流进行流处理操作,将流式的数据抽象成分布式的数据流,用户可以方便地对分布式数据流进行各种操作。 |
| Table API | 对结构化数据进行查询操作,将结构化数据抽象成关系表,并通过类SQL的语句对关系表进行各种查询操作。 |
| 服务 | 说明 |
|---|---|
| 读优化表(Read Optimized Table) | 通过列式存储提高查询性能 |
| 近实时表(Near-Real-Time Table) | 基于行的存储和列式存储的组合提供近实时查询 |
| 步骤 | 工作 |
|---|---|
| 1 | 定义数据集上的一个星形或雪花形模型 |
| 2 | 在定义的数据表上构建多维立方 |
| 3 | 使用SQL进行查询 |
| 编号 | 特性 |
|---|---|
| 1 | 亚秒响应的交互式查询,支持较高并发 |
| 2 | 支持实时导入,导入即可被查询,支持高并发导入 |
| 3 | 采用分布式shared-nothing的架构,可以扩展到PB级 |
| 4 | 数据查询支持SQL |
| 特征 | 说明 |
|---|---|
| 轻松地构建模型 | 它可以使用API轻松地构建和训练机器学习模型,这使得我们能够快速迭代模型并轻松地调试模型。 |
| 随时随地进行可靠的机器学习生产 | 它可以在CPU和GPU上运行,可以运行在台式机、服务器和手机移动端等设备上。无论使用哪种语言,都可以在云端、本地、浏览器中或设备上轻松地训练和部署模型。 |
| 强大的研究实验 | 现在科学家可以用它尝试新的算法,产品团队则用它来训练和使用计算模型,并直接提供给在线用户。 |



