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

Apache flink Flink:如何使用命令行界面取消正确的作业?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我有一个Flink服务器,它运行多个流媒体作业。这些作业是使用flink run命令启动的,基本上一直运行到您停止它们为止。现在我想取消一项特定的工作。当我使用flink list时,我会得到如下结果: ------------------ Running/Restarting Jobs ------------------- 10.12.2015 08:30:37 : d6aeefaa2295ce122b65037805db0891 : Flink Streaming Job (RUNNING

我有一个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流媒体工作为名称,所以我不知道该选哪一个


是否有办法更改flink列表中显示的作业名称?如果没有,是否有方法通过命令行获取有关正在运行的作业的其他信息(例如,它是从哪个JAR文件启动的,它的主类是什么,等等)。如果没有,是否有办法从flink run获取作业ID,以便我可以将其存储在某种等效的PID文件中,稍后使用该ID取消作业?

使用
StreamExecutionEnvironment.execute()
方法可以设置作业的名称:

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

太棒了,正是我需要的。非常感谢你!请注意,作业提交的RESTAPI确实提供了作业ID,这可能比解析
flink run的输出更容易处理。