【问题标题】:Flink State Schema MigrationFlink 状态模式迁移
【发布时间】:2018-03-10 03:42:12
【问题描述】:

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

当我更改状态的架构并重新部署应用程序时,出现以下异常

Caused by: org.apache.flink.util.StateMigrationException: State migration isn't supported, yet.
at org.apache.flink.runtime.state.heap.HeapKeyedStateBackend.tryRegisterStateTable(HeapKeyedStateBackend.java:209)
at org.apache.flink.runtime.state.heap.HeapKeyedStateBackend.tryRegisterStateTable(HeapKeyedStateBackend.java:142)
at org.apache.flink.runtime.state.heap.HeapKeyedStateBackend.createValueState(HeapKeyedStateBackend.java:234)
at org.apache.flink.runtime.state.AbstractKeyedStateBackend$1.createValueState(AbstractKeyedStateBackend.java:315)
at org.apache.flink.api.common.state.ValueStateDescriptor.bind(ValueStateDescriptor.java:128)
at org.apache.flink.api.common.state.ValueStateDescriptor.bind(ValueStateDescriptor.java:35)
at org.apache.flink.runtime.state.AbstractKeyedStateBackend.getOrCreateKeyedState(AbstractKeyedStateBackend.java:312)
at org.apache.flink.runtime.state.AbstractKeyedStateBackend.getPartitionedState(AbstractKeyedStateBackend.java:392)
at org.apache.flink.runtime.state.DefaultKeyedStateStore.getPartitionedState(DefaultKeyedStateStore.java:124)
at org.apache.flink.runtime.state.DefaultKeyedStateStore.getState(DefaultKeyedStateStore.java:60)

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

附:如果我想将 S3 上的 FsStateBackend 用于在独立集群上运行的 flink 应用程序,则必须进行哪些配置更改。

【问题讨论】:

    标签: java apache-flink flink-streaming kryo


    【解决方案1】:

    使用FsStateBackend 不会解决这个问题,因为它还在后台使用HeapKeyedStateBackend,这就是引发此异常的原因。

    有FLIP-22 可以帮助解决这个状态迁移问题,但尚未实施。

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

    关于 FsStateBackend 配置,请看(写得很好的)文档here。

    【讨论】:

    • 感谢您的回答。使用 S3 的 FsStateBackend 需要更改 core-site.xml 文件,该文件是 Hadoop 集群部署的一部分。如果想要拥有独立集群部署并且仍然拥有 s3 FsStatebackend,我必须做哪些更改。
    猜你喜欢
    • 1970-01-01
    • 2018-11-14
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    相关资源
    最近更新 更多