【问题标题】:Deployment of new version of Flink application failed新版 Flink 应用部署失败
【发布时间】:2021-06-22 21:08:40
【问题描述】:
  • 环境
    • flink 1.7.1
    • 卡夫卡 1.0.1

我在 Streaming 过程中使用 Flink 应用程序。 从 kafka 读取主题并将其下沉到 kafka 新主题。

当我用新版本的代码更改应用程序并部署时,应用程序执行失败。

如果我在更改应用代码后部署相同的group.id,会不会与之前的状态检查点信息冲突?

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    是的,如果您尝试对 Flink 应用程序进行有状态升级,有几件事可能会导致它失败。

    有状态运算符的 UID 用于查找每个运算符的状态。如果您没有设置 UID,那么如果作业的拓扑发生了变化,状态恢复将失败,因为 Flink 将无法找到状态。详情请见the docs on Assigning Operator IDs

    如果您已删除有状态运算符,则应在指定 -allowNonRestoredState 时运行新作业。

    如果您修改了数据类型,则在尝试反序列化检查点或保存点中的状态时,作业可能会失败。 Flink 1.7 不支持自动模式演化或状态迁移。在最新版本的 Flink 中,如果您坚持使用 POJO 或 Avro,则会自动处理。否则,您需要自定义序列化程序。

    如果这不能帮助您找出问题所在,请分享显示特定异常的日志中的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 2020-08-28
      • 2018-10-28
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多