各位朋友大家好,我是flink初学者,部署flink ha的过程中出现一些问题,麻烦大家帮忙看下; 启动flink ha后,jobmanager进程直接hang,使用的flink 1.7.2版本,下面log中有一处出现此错误 File does not exist: /flink/ha/zookeeper/submittedJobGraphb05001535f91 ,让我不解的是我的checkpoint目录以及ha目录并不是这个,为什么会到这个目录去找,我所配置的目录下没有生成JobGraph ,他会一直去检索 /a5ffe00b0bc5688d9a7de5c62b8150e6 这个作业图而且找不到,我删除了所有相关的配置路径之后重新搭建,启动时还是会去检索,我该怎样避免flink去检索这个JobGraph ,让我的ha群集健康的运行起来。
报错日志: 2019-03-25 18:55:00,742 ERROR org.apache.flink.runtime.entrypoint.ClusterEntrypoint - Fatal error occurred in the cluster entrypoint. java.lang.RuntimeException: org.apache.flink.util.FlinkException: Could not retrieve submitted JobGraph from state handle under /a5ffe00b0bc5688d9a7de5c62b8150e6. This indicates that the retrieved state handle is broken. Try cleaning the state handle store. at org.apache.flink.util.ExceptionUtils.rethrow(ExceptionUtils.java:199) at org.apache.flink.util.function.FunctionUtils.lambda$uncheckedFunction$2(FunctionUtils.java:74) at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602) ....... Caused by: org.apache.flink.util.FlinkException: Could not retrieve submitted JobGraph from state handle under /a5ffe00b0bc5688d9a7de5c62b8150e6. This indicates that the retrieved state handle is broken. Try cleaning the state handle store. at org.apache.flink.runtime.jobmanager.ZooKeeperSubmittedJobGraphStore.recoverJobGraph(ZooKeeperSubmittedJobGraphStore.java:208) at org.apache.flink.runtime.dispatcher.Dispatcher.recoverJob(Dispatcher.java:696) at org.apache.flink.runtime.dispatcher.Dispatcher.recoverJobGraphs(Dispatcher.java:681) ........ Caused by: java.io.FileNotFoundException: File does not exist: /flink/ha/zookeeper/submittedJobGraphb05001535f91 at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:66) at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:56) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem.java:2100) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:2070) ....... Caused by: org.apache.hadoop.ipc.RemoteException(java.io.FileNotFoundException): File does not exist: /flink/ha/zookeeper/submittedJobGraphb05001535f91 at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:66) at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:56) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem.java:2100) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:2070) .......
谢谢!*来自志愿者整理的flink邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这个问题,看起来是Flink在尝试从ZooKeeper中恢复之前提交的JobGraph时失败了,因为对应的文件不存在于你配置的HA目录下。这通常发生在Flink HA集群重启后,它试图根据之前的记录恢复作业状态。以下是一些建议来解决你的问题:
清理ZooKeeper状态: 由于错误提示建议清理状态句柄存储,你需要登录到ZooKeeper并手动删除或清理与这个特定JobGraph相关的条目。这些条目可能位于/flink/ha/zookeeper/submittedJobGraphs
路径下。请谨慎操作,确保只删除相关条目,避免影响其他正常数据。
检查配置: 确认你的Flink配置文件(如flink-conf.yaml
)中的high-availability
和high-availability.zookeeper.path.root
等设置是否正确指向了你期望的HA目录。同时,确认jobmanager.data.portions
和state.backend
相关的配置是否符合预期。
重启前清理: 在重新启动Flink集群之前,确保所有与先前运行有关的临时文件和状态已经被清理干净。这包括但不限于checkpoint目录、savepoint目录以及任何ZooKeeper中存储的状态信息。
使用Savepoints而非Checkpoint进行恢复: 如果可能,考虑使用Savepoints来恢复作业而不是依赖于自动的故障恢复机制。Savepoints提供了更灵活和可靠的作业恢复方式,你可以控制何时创建和使用它们。
升级Flink版本: 考虑到你使用的是较旧的Flink 1.7.2版本,可能存在已知的问题或bug。如果上述方法都无法解决问题,且升级环境允许的话,可以考虑升级到一个更稳定的新版本Flink,比如最新的稳定版,新版本可能已经修复了类似的问题。
查看ZooKeeper日志: 分析ZooKeeper的日志文件,可能会提供关于为什么JobGraph信息无法找到的额外线索。
记得在进行任何操作之前备份重要配置和数据,以防止意外丢失。希望这些建议能帮助你解决问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。