如何查看工作是否失败以及为什么?

时间:2018-08-14 16:41:31

标签: apache-flink

如何使用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个

1 个答案:

答案 0 :(得分:0)

使用NewClusterClient#requestJobResult,可以使用RestClusterClient完成。