首页 > 解决方案 > Flink 1.8.2 状态进化抛出异常

问题描述

我正在尝试更改具有大约 240 个变量的案例类,其中一些是我定义的其他 pojo 示例:信号(案例类)具有变量 PowerPojoFeature、UserFeature。当我更改任何 pojo 添加新变量时,它会抛出异常 rg.apache.flink.util.StateMigrationException:操作员状态的新状态 typeSerializer 不能不兼容。在 org.apache.flink.runtime.state.DefaultOperatorStateBackend.getListState(DefaultOperatorStateBackend.java:323)

是否有任何示例我可以为此或任何其他解决方案编写自定义序列化

标签: apache-flinkflink-streaming

解决方案


Flink 的序列化器还不支持案例类演化。您需要使用 POJO 或 Avro,或者实现自定义序列化程序。

自定义序列化程序的文档中有一些示例片段。

另一种方法是使用状态处理器 API 来迁移状态和数据类型。


推荐阅读