使用Java设置Flink分离模式

问题描述

Flink群集详细信息,
节点数:4
链接版本:1.11
Flink客户端:RestCluserClient

我们正在使用PackagedProgram从流作业提交Flink批处理作业,但是我们的要求是一次仅执行一个作业,假设我们从源头获得了2个事件,因此理想情况下必须触发2个批处理作业(每个事件),但是一次只有一个。为此,我们使用的是 client.setDetached(false)(在flink的早期版本中),但是一旦将其迁移到1.11,setDetached(false)API就会被删除

我们是否知道如何实施此要求?

解决方法

在对此进行更多分析之后,我找到了解决方案。 Flink 1.11 API提供了用于提交作业的Utils类, ClientUtils ,它有两种方法,

  1. ClientUtils.submitJob()->此方法适用于分离模式为true
  2. ClientUtils.submitJobAndWaitForExecutionResult()->这与false一样是分离模式。