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

Flink CDC任务里有三个 全量+增量 的数据同步。并没有下降(如下图红框),这是为什么呀?

Flink CDC任务里有三个 全量+增量 的数据同步。现在有两个已经完成了全量同步(如上图蓝框),但是我查看任务所占的内存,并没有下降(如下图红框),这是为什么呀?是否正常,可否优化?image.png
image.png

展开
收起
真的很搞笑 2023-12-04 07:37:35 49 0
3 条回答
写回答
取消 提交回答
  • 并行度是1,这个是正常的,tm和jm是分配的时候决定的 ,此回答整理自钉群“Flink CDC 社区”

    2023-12-05 08:27:41
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看

    在Flink CDC任务中,全量和增量数据同步完成后,理论上内存占用应该有所下降。但您当前观察到的内存占用并未下降,可能的原因包括:

    1. 数据库连接池配置不合理:Flink CDC使用JDBC连接PostgreSQL数据库,如果连接池配置不合理,可能会导致数据库连接耗尽或连接超时等问题。
    2. Flink作业的配置问题:例如,Flink CDC的scan.startup.mode和debezium.snapshot.mode参数未正确配置,这可能导致全量同步未能成功执行。
    3. 存在其他未被发现的问题或异常情况。

    为了减小Flink CDC的内存占用并进一步优化任务,您可以考虑以下建议:

    1. 优化Schema读取时间:通过设置table.scan.startup.timeout参数来限制Schema初始化读取的时间,例如table.scan.startup.timeout = 60s
    2. 调整checkpoint策略以减少内存占用:可以减少checkpoint使用的内存个数,例如将并行的checkpoint数量设置为2,并降低checkpoint的频率。
    3. 检查并确保所有相关配置项都已正确设置,并且与您的任务需求相匹配。
    2023-12-04 14:29:15
    赞同 展开评论 打赏
  • Flink CDC任务在完成全量同步后,所占用的内存并不会立即下降。这是因为Flink的内存管理机制是基于流处理的,它会缓存一部分数据以便进行实时计算。所以,即使你已经完成了全量同步,Flink仍然会保留一部分内存用于增量数据的处理和计算。

    这种情况是正常的,不需要过于担心。但是,如果你发现任务所占用的内存过高,可能会影响到系统的性能,你可以尝试以下方法进行优化:

    1. 调整Flink的资源分配。你可以通过增加或减少任务的并行度来调整任务所占用的内存。

    2. 调整Flink的内存管理策略。你可以通过调整Flink的内存缓冲区大小、堆外内存等参数来优化内存使用。

    3. 优化数据处理逻辑。你可以通过优化数据处理的逻辑,减少不必要的数据复制和传输,从而降低内存使用。

    4. 如果可能,可以考虑使用更高效的数据同步工具,如Canal等,这些工具通常会有更好的内存管理和资源调度能力。

    2023-12-04 11:56:48
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

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