- env
- 燧石1.7.1
- 卡夫卡1.0.1
我在流处理过程中使用Flink应用程序。阅读卡夫卡的主题,并将其转化为卡夫卡的新主题。当我用新版本的代码更改应用程序并进行部署时,就会出现应用程序执行失败的情况
如果我在更改应用程序代码后部署相同的group.id,是否会与以前的状态检查点信息发生冲突?
是的,如果您试图对Flink应用程序进行有状态升级,有一些事情可能会导致它失败。
有状态运算符的UID用于查找每个运算符的状态。如果您没有设置UID,那么如果作业的拓扑结构发生了更改,则状态恢复将失败,因为Flink将无法找到状态。有关详细信息,请参阅"分配操作员ID"文档。
如果删除了有状态运算符,则应在指定-allowNonRestoredState
的同时运行新作业。
如果修改了数据类型,则在尝试反序列化检查点或保存点中的状态时,作业可能会失败。Flink 1.7不支持自动模式进化或状态迁移。在Flink的最新版本中,如果你坚持使用POJO或Avro,这是自动处理的。否则,您需要自定义序列化程序。
如果这不能帮助您找出问题所在,请分享显示特定异常的日志中的信息。