1. 大数据分布式计算模型
- 批处理计算模型:数据吞吐率高,适用于海量预存数据的批处理,典型系统如支持MapReduce模型的Hadoop平台。
- 流处理计算模型:处理时延较短,适用于产生速度快并需及时处理的实时数据流处理,代表性系统如Storm和S3平台。
- 混合计算模型:能够综合批处理与流处理的优点,但具有更高的系统复杂度,如Spark和Flink系统。
- 图处理模型:适合处理大规模图数据,典型系统有Pregel、GraphLab。
2. MapReduce 框架
- 设计的一个理念是 “计算向数据靠拢”,寻找离数据块最近的节点进行Map、Reduce的计算任务,而不是将数据运输到计算节点,移动数据需要大量的网络传输开销,会降低数据处理的效率。
- MapReduce 将复杂的、运行于大规模集群上的 并行计算过程高度抽象为Map和Reduce函数 ,极大地方便了分布式编程。
3. Spark 与 Hadoop 的对比
Hadoop | Spark | |
---|---|---|
数据读取 | 从磁盘读取 | 从内存读取 |
延迟 | 批处理,高延迟 | 流处理,低延迟 |
处理单元 | 进程 | 线程 |
执行机制 | 迭代执行机制 | 基于DAG(有向无环图)的任务调度执行机制 |
适合的数据处理场景 | 批处理 | 流数据处理,数据查询、统计分析、图数据和机器学习 |