如何使用ClusterClient
检查作业是否失败以及为什么?
ClusterClient#getJobStatus
看起来像是一个很好的第一候选人,但它仅表示如果工作失败而没有有关异常的任何信息。
作业的提交是由独立的客户端完成的,因此无法等待其ClusterClient#run
返回JobExecutionResult
。
我也尝试过
RestClusterClient#retrieveJob
也不起作用,失败:
org.apache.flink.runtime.client.JobRetrievalException:无法 检索领先的JobManager。在 org.apache.flink.runtime.client.JobListeningContext.getJobManager(JobListeningContext.java:157) 在 org.apache.flink.runtime.client.JobListeningContext.getClassLoader(JobListeningContext.java:141) 在 org.apache.flink.runtime.client.JobClient.awaitJobResult(JobClient.java:262) 在 org.apache.flink.client.program.ClusterClient.retrieveJob(ClusterClient.java:586) 在java.lang.Thread.run(Thread.java:745) 造成原因: org.apache.flink.runtime.leaderretrieval.LeaderRetrievalException: 无法检索领导者网关。在 org.apache.flink.runtime.util.LeaderRetrievalUtils.retrieveLeaderGateway(LeaderRetrievalUtils.java:82) 在 org.apache.flink.runtime.client.JobListeningContext.getJobManager(JobListeningContext.java:152) ...还有10个 造成原因:java.util.concurrent.TimeoutException:期货 在[10000毫秒]后超时 scala.concurrent.impl.Promise $ DefaultPromise.ready(Promise.scala:223) 在 scala.concurrent.impl.Promise $ DefaultPromise.result(Promise.scala:227) 在scala.concurrent.Await $$ anonfun $ result $ 1.apply(package.scala:190) 在 scala.concurrent.BlockContext $ DefaultBlockContext $ .blockOn(BlockContext.scala:53) 在scala.concurrent.Await $ .result(package.scala:190)在 scala.concurrent.Await.result(package.scala)在 org.apache.flink.runtime.util.LeaderRetrievalUtils.retrieveLeaderGateway(LeaderRetrievalUtils.java:80) ...还有11个