flink项目namenode启动失败:Journal storage directory /tmp/hadoop/dfs/journalnode/hadoopha not formatted

本文讲述了在Flink HA环境中,重启JobManager节点导致Namenode与JournalNode不一致的问题,如何通过初始化共享编辑并修复状态存储来解决,以及后续JobManager启动失败和文件丢失的处理过程。
摘要由CSDN通过智能技术生成

在测试flink的HA时,把某个节点(部署了jobmanager和namenode)的节点reboot了,然后启动时发现namenode没有起来,报错大概如下:

org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal Storage Directory /tmp/hadoop/dfs/journalnode/xxxx not formatted
	at org.apache.hadoop.hdfs.qjournal.server.Journal.checkFormatted(Journal.java:457)

原因:大概为journalnode保存的元数据和namenode的不一致,导致,3台机器中有2台报了这个错误。

解决:在nn1上启动journalnode,再执行hdfs namenode -initializeSharedEdits,使得journalnode与namenode保持一致。再重新启动namenode就没有问题了。

但又遇到flink的jobmanager启动不了,报错如下:

ERROR org.apache.flink.runtime.entrypint.XlusterEntrypoint   -Fatal error occurred in the cluster entrypoint.
	org.apache.flink.runtime.dispatcher.DispatcherException: Failed to take leadership with session id xxxxxxxxxxxxxxxxxxxxxxxxxx
	....
caused by: java.lang.RuntimeException: org.apache.flink.util.FlinkException: Could not retrieve submitted JobGraph from state handle under /xxxxx. This indicates that the retrieved state handle is broken. Try cleaning the state handle store.
..
caused by: java.io.FileNotFoundException: File does not exitst: /xxxx/submittedJobGraphe439cfc979db

节点reboot时,是有任务在执行的,而刚才journalnode的initializeSharedEdits导致某些文件丢失了,而jobmanager在读取这个提交的job时发生了报错,故在zookeeper删除flink任务的引用即可

./zkCli.sh -server zookeeper的host

set /flink/default/running_job_registry/xxxxx DONE
delete /flink/default/jobgraphs/xxxx

解决后,重新启动jobmanager、taskmanager没有问题了,再提交任务就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值