数分-理论-大数据8-总结
(数据分析系列)
文章目录
1知识点
- 框架综述
- 发展简史
- 结语
2具体内容
2.1框架综述
大数据框架在总体上分为存储引擎和计算分析引擎
- 存储引擎通常用来存储海量数据
- 分析引擎通常用来分析海量数据
2.2发展简史
2.2.1萌芽(2003-2008)
Google“三驾马车”:
- MapReduce:开源分布式并行计算框架
- BigTable:大型的分布式数据库
- GFS:Google的分布式文件系统
Hadoop,包括HDFS文件存储系统和MapReduce计算引擎。
- MapReduce:主要解决可扩展性和容错性问题,从而可以通过使用简单的API,专注于大数据处理。其缺点是抽象层次太低,不便于工作流的编写。
- FlumeJava:主要解决MapReduce抽象层次太低的问题,解决单个MapReduce无法满足复杂业务场景的问题,专注自动优化编写的逻辑管道。
2.2.2快速进展(2009-2014)
1.spark
- 内存计算,提高了速度;
- 引入RDD概念,数据可重放,实现一致性;
- RDD的抽象概念,使数据流的处理很方便,代码编写简单。
- 缺点:Spark Streaming的实时计算,是伪实时、mini-batch的,不能真正覆盖实时应用的场景。
2.storm
- event级别实时计算,毫秒级低延迟,能满足实时需求
- 较低的一致性保证;无状态;不支持SQL。
- 提出Lambda架构(即离线计算+实时计算的架构)
2.2.3成熟(2015-)
1.dataflow
- 抽象出一个具有足够普遍性和灵活性的模型,通过执行引擎的选择,转换为延迟程度和处理成本之间的选择
- The Dataflow Model
2.Flink:流式处理 - Flink不同于Spark的批处理(batch processing),它主要用于数据的流处理(streaming processing)
- 将输入看做一条stream,将函数应用到stream上,再进行输出
- 底层是流式处理,上层也是基于流式处理构建的batch,通过记录流式处理的start point,以及维护运行过程中的state实现一个窗口的batch处理
2.2.4大数据分析引擎
- 改进编程模型,让我们用更简单的API,写出更复杂的业务处理逻辑;
- 提高处理效率,效率必然是不可缺少的;
- 扩大解决的问题领域,一个处理引擎,能够处理更多的业务场景,意味着更少的维护成本、更少的集群投入、更简单的架构。
2.3结语
- 大数据概念
- 大数据处理架构Hadoop
- 分布式文件系统HDFS
- 分布式数据库HBase
- 分布式并行编程模型MapReduce
- 数据仓库Hive
- 大数据框架Spark
3参考
- https://github.com/shenhao-stu/Big-Data/