Flink:如何使用命令行界面取消正确的作业?

4

我有一个Flink服务器,运行着几个流处理作业。这些作业是使用flink run命令启动的,并且基本上会一直运行直到你停止它们。现在我想要取消一个特定的作业。当我执行flink list命令时,会得到以下类似的输出:

------------------ Running/Restarting Jobs -------------------
10.12.2015 08:30:37 : d6aeefaa2295ce122b65037805db0891 : Flink Streaming Job (RUNNING)
10.12.2015 08:44:18 : cfe10aca3435730d09691ff644475467 : Flink Streaming Job (RESTARTING)
10.12.2015 08:55:08 : 4ca359e286d4f5b4de62aee76f4c6389 : Flink Streaming Job (RESTARTING)
10.12.2015 08:57:42 : 1b75acb482f2610039ea2211e094b862 : Flink Streaming Job (RESTARTING)
10.12.2015 09:07:22 : 609993523b0214f52fabfdf09baf419d : Flink Streaming Job (RESTARTING)

使用此输出,无法取消正确的作业,因为没有办法识别哪个作业是哪个。所有作业都只有“Flink Streaming Job”作为名称,因此我不知道应该选择哪一个。
是否有办法更改在`flink list`中显示的作业名称?如果没有,是否有办法通过命令行获取有关运行作业的其他信息(例如,它是从哪个JAR文件启动的,它的主类是什么等)?如果没有,是否有办法从`flink run`中获取Job-ID,以便我可以将其存储在某种PID文件等中,并稍后使用该ID来取消作业?

请注意,用于作业提交的 REST API 提供作业 ID,这可能比解析 flink run 命令输出更容易处理。 - Eron Wright
1个回答

9
< p > StreamExecutionEnvironment.execute() 方法可以设置作业的名称:

// execute program
env.execute("Streaming data into " + topicName + " topic");

太棒了,正是我所需要的。非常感谢你! - Jan Thomä

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接