开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC有没有什么方法可以进行持久化啊?

Flink CDC通过sql-client创建的 table以及提交的任务,重启过后就没有了,有没有什么方法可以进行持久化啊?

展开
收起
真的很搞笑 2023-12-20 08:27:01 279 0
2 条回答
写回答
取消 提交回答
  • Flink CDC通过sql-client创建的表和提交的任务在重启后丢失,是因为这些信息默认存储在内存中,而不是持久化到磁盘。为了在重启后保持这些信息,你可以采取以下几种方法进行持久化:

    1. 使用SQL Client的持久化配置:
      在启动Flink SQL Client时,可以通过-s--server参数指定一个持久化的目录,这样客户端的状态(包括创建的表和提交的任务)将会保存在这个目录中。例如:

      ./bin/sql-client.sh embedded -s /path/to/persistent/directory
      
    2. 保存和恢复SQL脚本:
      可以将创建表和提交任务的SQL脚本保存下来,在Flink SQL Client重启后重新执行这些脚本。
    3. 使用Flink的checkpoint和savepoint机制:
      对于提交的任务,可以启用Flink的checkpoint或者手动触发savepoint,这样在Flink集群重启后,可以使用之前的checkpoint或savepoint恢复任务状态和进度。

      启用checkpoint的示例配置:

      execution.checkpointing.interval: 60000  # 每60秒进行一次checkpoint
      state.backend: filesystem  # 使用文件系统作为状态后端
      state.checkpoints.dir: hdfs://namenode:port/flink-checkpoints  # checkpoint存储路径
      

      手动触发savepoint的命令示例:

      ./bin/flink savepoint <jobId> hdfs://namenode:port/flink-savepoints/<savepointName>
      
    4. 使用Flink的HA(High Availability)模式:
      配置Flink集群为HA模式,这样当主节点故障时,可以从备用节点恢复,并且任务和元数据也会得到持久化。
    2023-12-20 17:26:09
    赞同 展开评论 打赏
  • 找个开发平台,dinky,streampark之类的 ,此回答整理自钉群“Flink CDC 社区”

    2023-12-20 09:57:17
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载