flink学习(二)——flink怎么进行流计算

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams.

上述那句话是flink官网对flink的描述。

我们可以总结出两点计算特征:

  1. 分布式
  2. 有状态计算

分布式很好理解。在大数据时代,作为数据处理引擎,分布式是必须的能力,相信大家有很好的理解,这里不再赘述。而有状态计算应该怎么理解呢?

有状态计算

在前面我们提到,流计算在数据一来就会进行计算,得到中间结果。这个中间结果往往是之前来到的数据的综合计算结果,而不仅仅是这一条数据本身,即计算结果要依赖历史数据。这个时候,我们要么就是保存历史数据,要么就是保存历史数据的计算结果,然后再与新来的数据一起处理得到最新结果。而保存的历史数据或者历史计算结果就是状态。现在我们再来看有状态计算这个概念,就可以理解为保存了历史数据或历史计算结果的计算。如下图所示:
在这里插入图片描述
在第三列算子旁边的两个数据存储就是状态。

之前的计算引擎要实现这个功能,往往要借助于外部存储,如mysql,redis等,而flink原生支持了有状态计算,直接将状态保存在本地(内存或本地磁盘),大大提高了状态计算api的易用性,提升了程序运行速度和吞吐量,降低了延迟。

我们来看下flink的计算过程:
在这里插入图片描述
首先数据input进来,在各个task中处理,处理的同时还要获取状态,处理完成后输出。理解这个有状态计算后,可以发现整体的计算流程就是很简单的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值