概述
Flink有个流处理的任务一直运行着,程序用到了State,而且每次结果都得依赖前面的State,所以程序重新启动要指定CheckPoint或者SavePoint的恢复路径,配置了状态后端为RocksDBStateBackend,路径为:hdfs:///flink/checkpoints/pack-download-streaming,前面几次程序出现问题都能直接从上次CheckPoint保存的路径恢复状态。
这次程序挂了,然后HDFS的NameNode的Active也从原来的110节点换成了107节点,原本我写的恢复的路径是:hdfs://192.168.2.110:8020/flink/checkpoints/pack-download-streaming/6d2efb85e595f43d34e66245fb95e32a/chk-8181,那报Operation category READ is not supported in state standby可以理解,但是把恢复路径改成hdfs:///flink/checkpoints/pack-download-streaming/6d2efb85e595f43d34e66245fb95e32a/chk-8181,甚至是hdfs://192.168.2.107:8020/flink/checkpoints/pack-download-streaming/6d2efb85e595f43d34e66245fb95e32a/chk-8181都是报一样的错,连core-site.xml和hdfs-site.xml都尝试拷贝进去了还是不管用。
报错大体如下:
java.lang.Exception: Exception while creating StreamOperatorStateContext.
at org.apache.flink.streaming.api.operators.StreamTaskStateInitializerImpl.streamOperatorStateContext(StreamTaskStateInitializerImpl.java:195)
at org.apache.flink.streaming.api.operators.AbstractStreamOperator.initializeState(

探讨Flink流处理任务中遇到的状态恢复问题,尤其是在HDFS NameNode切换后导致的Checkpoint恢复失败。通过修改Checkpoint的_metadata文件中的IP地址,成功实现了从新Active节点恢复状态。
最低0.47元/天 解锁文章
3796

被折叠的 条评论
为什么被折叠?



