开发者社区 问答 正文

flink job exception有问题求教?

各位好: 我是flink的初学者。 今天在flink web UI 和后台的job 管理页面 发现很多

exception: ......

11:29:30.107 [flink-akka.actor.default-dispatcher-41] ERROR

org.apache.flink.runtime.rest.handler.job.JobExceptionsHandler -

Exception occurred in REST handler: Job 16c614ab0d6f5b28746c66f351fb67f8

not found

......

此时,登录flink web UI,  在"completed jobs"页面

找不到任何job的历史信息,但是当初提交job的时候 是能看到这些job 信息的。

环境信息:

flink: 1.12.4 for windows

启动flink和执行flink 作业使用的是 1.9.3版本的start-cluster.bat, flink.bat

我的疑问是:flink 是否有定期清理历史job的功能?

     如果有,在哪里(通过命令行或者配置文件)可以配置相关的参数 ?

     如果没有,这些错误信息是否正常 ?怎样解决这个问题 ?

Thanks,*来自志愿者整理的flink邮件归档

展开
收起
EXCEED 2021-12-01 17:03:20 1347 分享 版权
阿里云 AI 助理回答

Apache Flink 的历史作业信息默认是存储在 JobManager 的内存中,因此当 JobManager 重启时,之前的历史作业信息会丢失。Flink 本身并没有内置的定期清理历史作业的功能,因为它通常假设作业状态(包括已完成作业的信息)要么被持久化存储(例如通过 checkpointing),要么在 JobManager 重启后不再可用。

对于您遇到的情况,有几个可能的原因和解决办法:

  1. JobManager 重启:如果您的 JobManager 在运行过程中重启了,那么它内存中的历史作业信息将会丢失。这是正常现象,不是错误。为长期保存作业历史,您可以考虑使用外部系统如监控系统(如Prometheus配合Grafana)、日志系统(如ELK Stack)来收集和存储这些信息。

  2. 配置历史服务器:Flink 提供了一个可选的 HistoryServer,它可以独立于正在运行的集群收集并展示历史作业信息。要启用 HistoryServer,您需要在 conf/flink-conf.yaml 中进行如下配置,并启动 HistoryServer:

    jobmanager.archive.fs.dir: hdfs:///path/to/flink/archive # 或其他文件系统路径
    

    然后,启动 HistoryServer:

    ./bin/historyserver.sh start
    

    这样,即使 JobManager 重启,已完成的作业信息仍然可以通过 HistoryServer 查看。

  3. 版本兼容性问题:您提到使用的是 Flink 1.12.4,但通过 1.9.3 版本的脚本启动。虽然这不应该是导致历史作业消失的直接原因,但不同版本间的脚本或配置可能存在差异,建议使用与 Flink 版本匹配的启动脚本以避免潜在的兼容性问题。

综上所述,如果您希望保留和查看历史作业信息,部署并配置 HistoryServer 是一个推荐的解决方案。至于您看到的 "Job not found" 错误,这很可能是因为 JobManager 重启或者没有正确配置历史记录功能所致,而不是异常情况。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答