Flink简介

流处理和批处理的区别

在这里插入图片描述

无界流和有界流

因为Flink想要实现流批统一,所以提出了无界流和有界流这俩个概念,这俩个概念就相当于前文所说的流处理和批处理。

任何类型的数据都是作为事件流产生的。再互联网上的所有数据都可以作为流生成
无界流有一个开始但没有定义的结束。他们不会再生成时终止并提供数据。必须持续处理无界流,,即必须再摄取事件后立即处理实践。无法等待所有输入数据到达,因为输入是无界的,并且再任何时间点都不会有完成状态。处理无界流数据通常要求以特定顺序(例如事件发生的顺序)摄取事件,以便能够推断结果的完整性
有界流具有定义的开始和结束。可以在执行任何计算之前通过摄取所有的数据来处理有界流。处理有界流不需要有序摄取,因为可以始终对有界数据集进行排序。有界流的处理也称为批处理

有界流:bounded stream
无界流:unbounded stream
在这里插入图片描述
由这张图我们可以看出,有界流是无界流的特例

请添加图片描述

离线计算和实时计算

有界流适合离线计算,无界流适合实时计算

特点:

在这里插入图片描述

实时计算面临的挑战

1、数据处理的唯一性

如何保证数据只处理一次?至少一次?最多一次?

2、数据处理的及时性

采集的实时数据量太大的话可能会导致短时间内处理不过来,如何保证数据能够及时的处理,不出现数据堆积?

3、数据处理层和存储层的可扩展性

如何根据采集的实时数据量的大小提供动态的扩容缩容?

4、数据处理层和存储层的容错性

如何保证数据处理层和存储层高可用,出现故障时数据处理层和存储层服务依旧可用

什么是Flink

Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算请添加图片描述

Flink的特点

在这里插入图片描述

1、支持高吞吐、低延迟、高i性能的流处理
2、支持带有事件时间的窗口(Windows)操作
3、支持有状态计算的Exactly-once语义
4、支持高度灵活的窗口操作,支持基于time、count、session,以及data-dirven的窗口操作
5、支持具有反压功能的持续流模型
6、支持基于轻量级分布式快照实现的容错
7、一个运行时同时支持批处理和流处理
8、Flink在JVM内部实现了自己的内存管理,避免出现oom(所以Flink基本不会出现内存溢出)
9、支持迭代计算
10、支持程序自动优化:避免特定情况下shuffle、排序等昂贵操作,中间结果有必要进行缓存

spark和flink的区别

请添加图片描述
1、Spark可以在map端预聚合,而Flink不行

因为Spark有预聚合,所以有延迟,而Flink是数据直接发送到下游,每一条数据都会处理

2、Spark先maptask后reducetask,而Flink是maptask和reducetask一起启动,等待数据过来

spark是mapreduce模型
Flink是持续流模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被迫内卷的学习记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值