Flink概述
这里只是一个刚开始学习Flink的小白,分享自己的学习历程,部分学习资源来自B站,主要学习和应用PyFlink。有问题可以告诉我哦,大家一起学习进步!
Apache Flink是一种开源的流处理框架和分布式处理引擎,能够高效地处理大规模数据流和批处理任务。它主要用于实时数据处理和分析,支持复杂的事件处理、数据转换和聚合操作。Flink以其高吞吐量、低延迟、容错性和可伸缩性著称,广泛应用于各种需要实时数据处理的领域。
核心目标:数据流上有状态计算
具体说明:Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。
无界和有界数据流
顾名思义,无界和有界数据流的区别主要在于其有无结束。下面进行具体介绍:
无界数据流
- 定义:没有固定结束标志,数据持续不断地产生和流入系统。
- 特点:无限性,适用于实施处理。
- 举例说明:网络实时情感与趋势分析。当你在刷csdn的时候,无论何时点击某种类型的就会源源不断被推荐相同类型的内容。
有界数据流
- 定义:数据集是有限的,有开始和结束点。
- 特点:有限性,适用于批处理。
- 举例说明:对一个现有文档中的词频进行统计,此时数据包含在该文档内,读取并处理完成后结束。
状态存储
-
状态存在内存中
- 优点:速度快
- 缺点:可靠性差
-
状态存在分布式系统中
- 优点:可靠性高
- 缺点:速度慢
Flink特点
-
高吞吐是低延迟
每秒处理百万个事件,毫秒级延迟。
-
结果的准确性
Flink提供了事件时间和处理时间的语义,确保数据处理的准确性和精确性。
-
状态一致性保证
Flink具有强大的状态管理机制,通过分布式快照和容错机制,确保数据处理的一致性和准确性。
-
可以连接到最常用的存储系统,如HDFS等
-
高可用
支持自动故障恢复和人物重新调度,确保系统在出现故障时已然稳定运行。
顺便提一下,Flink与spark的不同点在于,spark以批处理为根本,而Flink以流处理为根本。