如何在flink(scala)中的任务之间共享私有变量?

y1aodyip  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(813)

我想在flink作业(scala)中跨flink的并行任务共享一个私有变量。我的代码是这样的:

object myJob extends flinkJob {
 private val myVariable = someValue

 def run(params) : Unit = {
  //Stream processing
  //myVariable is used here in the ProcessFunction
 }
}

当我并行运行这个作业时,是否会在所有flink任务中共享一个“myvariable”副本?如果没有,如何确保在所有并行任务中只使用和维护变量的一个副本?

bkhjykvo

bkhjykvo1#

由于操作符的并行副本在单独的JVM中作为任务运行,因此不能“共享”变量。您可以使用broadcaststream与多个任务共享相同的数据。如果您需要能够更新变量,那么您需要考虑使用迭代,或者将变量存储在可以定期查询的外部系统中。

相关问题