如何在 Flink (Scala) 中的任务之间共享私有变量



我想在我的 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"副本?如果没有,如何确保在所有并行任务中仅使用和维护变量的一个副本?

由于运算符的并行化副本在单独的 JVM 中作为任务运行,因此不能"共享"变量。您可以做的是使用广播流与多个任务共享相同的数据。如果需要能够更新变量,则需要考虑使用迭代,或将变量存储在可以定期查询的外部系统中。

相关内容

  • 没有找到相关文章

最新更新