- 批处理与流处理
- 批处理
- 就是把一整块数据切分成一小块一小块,每一个小块称为一批,把一个小块数据分配给一个计算节点进行运算,这种情况称为批处理
- 流处理
- 流处理的数据是无界的
- 数据就像一条河里的水源源不断地从上游流到计算框架中,我们不知道数据的总量是多少,也不知道什么时候结束
- 批处理
- 什么是 Flink
- Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算
- Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算
- Flink 的特色
- 数据皆流
- 多平台支持
- 高速
- Flink 的组件架构
-
- 最底层是部署相关的组件,包括了支持本地单机部署、集群部署,以及云上部署的组件。
- Core 核心层,是 Flink 实现的最关键组件,包括支持分布式的流处理运算,各种分配和调度系统都在这一部分实现,为更上层的 API 提供基础服务,这也为用户的方便使用奠定了基础。
- API 和 Lib 层,提供了流处理和批处理计算的各种 API,以及针对特定的计算支持库
-
- Spark VS Flink
- 核心实现
- Spark 主要使用 Scala 语言编写而成;
- 而 Flink 早期是使用 Java 进行编写的,但是后期的很多更新也使用了 Scala 语言。
- 编程接口
- 在编程接口方面,Spark 和 Flink 就更加相似了。二者都提供了对各种编程语言的支持,包括 Java、Python、Scala 等,都可以用来编写 Spark 或者 Flink 程序。
- 计算模型
- Flink 是把所有数据都看作流来进行处理,所以它本身对流式数据有着非常优秀的计算性能,在流计算方面做了大量的优化。
- Spark 虽然也是混合计算框架,但是 Spark 的设计理念是批处理,也就是所有数据都是批数据。
- 核心实现
- 流批一体
- Flink 会支持更加智能的流批融合,甚至是自动切换。
大数据技术基础知识总结十二
最新推荐文章于 2024-07-25 09:48:00 发布