通过REST API提交Apache Flink作业失败问题咨询
问题原因
这个报错的核心是:你提交作业时用了Detached(后台异步)模式,但Flink的REST API JarRun处理程序默认需要获取作业执行的结果(比如累加器、运行时长这些),而Detached模式下JobManager不会返回这些数据,直接触发了异常。
解决办法
不需要额外配置,调整REST请求的参数即可:
- 检查你的请求里是否带有
-d或--detached参数,有的话直接移除。该参数会强制作业以Detached模式提交,导致处理程序拿不到执行结果而报错。 - 如果确实需要让作业后台运行(比如长期运行的流处理作业),就在请求的JSON体里明确添加
"detached": true参数。此时API只会返回作业ID,不会等待执行结果,也就不会触发异常。示例请求体:{ "entryClass": "你的主类全路径", "programArgs": "你的命令行参数", "detached": true } - 额外说明:如果你的主类代码中使用了
execute()方法(会阻塞等待作业结束),但你希望作业后台运行,也可以改成executeAsync(),不过这不是必须的,只要REST请求参数设置正确就能解决问题。
内容的提问来源于stack exchange,提问作者Vim
相关产品推荐
相关产品推荐

