Flink State Schema Migration

时间:2018-03-10 03:42:12

标签: java apache-flink flink-streaming kryo

我在使用MemoryStateBackend的独立群集上有一个flink流应用程序。 Kryo的TaggedFieldSerializer被用作默认的序列化器。

当我更改状态模式并重新部署应用程序时,我得到以下异常

http://localhost:4200

如果有人建议我解决这个问题,或者我应该使用FsStateBackend来解决这个问题,那将会非常有用。

P.S。如果我想在S3上使用FsStateBackend来运行在独立群集上运行的flink应用程序,那么必须进行哪些配置更改。

1 个答案:

答案 0 :(得分:2)

使用FsStateBackend无法解决此问题,因为它还会使用HeapKeyedStateBackend,这就是引发此异常的原因。

FLIP-22来帮助解决此状态迁移问题,但尚未实施。

目前我听说过的最佳选择是使用基于Avro的序列化程序,因为它可以实现,以便无缝地处理新旧模式。但这对于胆小的人来说并不适合。

关于FsStateBackend配置,请参阅(编写良好)文档here