欢迎光临散文网 会员登陆 & 注册

Flink 累加器是什么?与广播变量有什么区别?

2023-07-21 16:36 作者:ingemar-  | 我要投稿

Accumulator即累加器,与Mapreduce计数器的应用差不多,可以很好地观察任务在运行期间的数据变化

但是可以在Flink job任务中的计算子函数中操作累加器,只能在任务执行结束之后才能获得累加器的最终结果。

Flink 现在有以下内置累加器。每个累加器都实现了Accumulator接口。

  • 内部计数器

  • 长计数器

  • 双计数器

步骤

1.创建累加器

2.注册累加器

3.使用累加器

4.获得累加器的结果



参考代码

未使用累加器:

使用累加器:


Flink 广播和累加器的区别


Broadcast(广播变量)允许程序员将一个串口的变量数据修改在每台机器上,而不用在任务之间传递变量。广播变量可以进行共享,但不能进行。

Accumulators(累加器)是可以在不同的任务中对同一个变量进行累加操作(简单的说就是由Flink为我们实现线程安全)(对于循环系统,增加累加的各个Task会跨Slot,甚至会跨机器进行累加来说,所以,传统的累加器不可用,需要用Flink提供的加器才可以的)。


Flink 累加器是什么?与广播变量有什么区别?的评论 (共 条)

分享到微博请遵守国家法律