实时计算 Flink版操作报错合集之如何通过savepoint恢复Flink CDC任务

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

问题一:Flink CDC我使用cdc从oracle同步数据到doris,数据全部加载到内存后,报错怎么办?

Flink CDC里我使用cdc从oracle同步数据到doris,这边将数据全部加载到内存后,报错如下:2024-01-09 15:11:00,825 WARN org.apache.flink.runtime.taskmanager.Task [] - Sink sink-doris.testdb.COMPINTRODUCTION (1/1)#0 (c91bf92bf11229d32044a8499c550254) switched from RUNNING to FAILED with failure cause: java.io.IOException: Could not perform checkpoint 1 for operator Sink sink-doris.testdb.COMPINTRODUCTION (1/1)#0.

at org.apache.flink.streaming.runtime.tasks.StreamTask.triggerCheckpointOnBarrier(StreamTask.java:1274)

at org.apache.flink.streaming.runtime.io.checkpointing.CheckpointBarrierHandler.notifyCheckpoint(CheckpointBarrierHandler.java:147)

at org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler.triggerCheckpoint(SingleCheckpointBarrierHandler.java:287)

at org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler.access$100(SingleCheckpointBarrierHandler.java:64)

at org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler$ControllerImpl.triggerGlobalCheckpoint(SingleCheckpointBarrierHandler.java:493)

at org.apache.flink.streaming.runtime.io.checkpointing.AbstractAlignedBarrierHandlerState.triggerGlobalCheckpoint(AbstractAlignedBarrierHandlerState.java:74)

at org.apache.flink.streaming.runtime.io.checkpointing.AbstractAlignedBarrierHandlerState.barrierReceived(AbstractAlignedBarrierHandlerState.java:66)

at org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler.lambda$processBarrier$2(SingleCheckpointBarrierHandler.java:234)

at org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler.markCheckpointAlignedAndTransformState(SingleCheckpointBarrierHandler.java:262)

at org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler.processBarrier(SingleCheckpointBarrierHandler.java:231)

at org.apache.flink.streaming.runtime.io.checkpointing.CheckpointedInputGate.handleEvent(CheckpointedInputGate.java:181)

at org.apache.flink.streaming.runtime.io.checkpointing.CheckpointedInputGate.pollNext(CheckpointedInputGate.java:159)

at org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.emitNext(AbstractStreamTaskNetworkInput.java:110)

at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:65)

at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:496)

at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:203)

at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:809)

at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:761)

at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:958)

at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:937)

at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:766)

at org.apache.flink.runtime.taskmanager.Task.run(Task.java:575)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.doris.flink.exception.DorisRuntimeException: stream load error: cancelled: Cancelled, see more in null,要怎么解决?



参考答案:

这个错误是由于Flink CDC在执行checkpoint时出现了问题。你可以尝试以下方法来解决这个问题:

  1. 增加checkpoint的超时时间。在Flink配置文件中,找到taskmanager.network.memory.mintaskmanager.network.memory.max这两个参数,将它们设置为更大的值,例如:
taskmanager.network.memory.min: 64mb
taskmanager.network.memory.max: 256mb
  1. 增加checkpoint的频率。在Flink配置文件中,找到execution.checkpointing.interval参数,将其设置为一个较大的值,例如:
execution.checkpointing.interval: 5000ms
  1. 检查Doris集群的状态,确保它正常运行并且没有负载过高的情况。如果Doris集群出现问题,可能会导致Flink CDC无法正常执行checkpoint。
  2. 如果问题仍然存在,可以尝试重启Flink和Doris集群,以清除可能的临时问题。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590819



问题二:Flink CDC里flink source 运行一段时间 报这个错误 怎么解决?

Flink CDC里flink source 运行一段时间 报这个错误 The Source Context has been closed already 怎么解决?



参考答案:

这个错误提示表明Flink CDC的Source Context已经被关闭。要解决这个问题,你可以尝试以下步骤:

  1. 检查Flink CDC的配置:确保Flink CDC的配置正确,并且与Debezium引擎和数据库之间的连接设置一致。检查配置文件中的数据库连接信息、Debezium引擎配置等是否正确。
  2. 检查网络连接:确保Flink CDC和Debezium引擎之间的网络连接正常。检查防火墙设置、网络路由等是否允许通信。
  3. 重启Flink CDC:尝试重新启动Flink CDC,以确保所有组件都处于正确的状态。
  4. 检查Debezium引擎的状态:确保Debezium引擎正在运行并且没有遇到任何错误。你可以查看Debezium引擎的日志文件以获取更多信息。
  5. 检查数据库状态:确保数据库处于正常状态,并且没有任何错误或异常情况。检查数据库的日志文件以获取更多信息。

如果以上步骤都没有解决问题,你可能需要进一步调查和调试,以确定具体的原因并采取适当的措施来解决该问题。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590817



问题三:在使用Flink CDC时,除了指定savepoint路径外,恢复任务还需要提供哪些信息?

在使用Flink CDC时,除了指定savepoint路径外,恢复任务还需要提供哪些信息?当尝试通过手动保存的savepoint(路径为/data/bigdata/flksavepoint/savepoint-8bf7c8-d01d1e73c7c2)恢复Flink CDC从MySQL到StarRocks的任务时,在sql-client端提交作业时报错,请问如何解读这些错误信息?



参考答案:

现在只能先在 flink-conf 里设置 execution.savepoint.path 指定 savepoint 路径解决。在conf/flink-conf.yaml 后面加上 execution.savepoint.path: /flink-1.18.0/savepoint/savepoint-98578e-2e3d6f4f9f86 指定。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590816



问题四:Flink CDC里这个问题是什么?

Flink CDC里这个问题是什么?Caused by: com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException: Failed to deserialize data of EventHeaderV4{timestamp=1704770282000, eventType=ROWS_QUERY, serverId=70181, headerLength=19, dataLength=1788, nextPosition=385937391, flags=128}这个bug在2.3.0版本修复了是么?



参考答案:

这个问题是由于Flink CDC在处理MySQL binlog事件时,遇到了反序列化错误。具体来说,是在尝试反序列化EventHeaderV4对象时出现了问题。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590815



问题五:Flink CDC里为什么通过maven打包之后一直报这个异常?

我是一个dotnet程序员,近期因为项目需要刚刚上手了java和FlinkCDC,我的代码写完了在idea中能够正常运行,但是不知道为什么通过maven打包之后一直报这个异常? Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make field private static final long java.util.Properties.serialVersionUID accessible: module java.base does not "opens java.util" to unnamed module @6a396c1e

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.1.1</version>
            <executions>
                <!-- Run shade goal on package phase -->
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <excludes>
                                <exclude>org.apache.flink:force-shading</exclude>
                                <exclude>com.google.code.findbugs:jsr305</exclude>
</excludes>
                        </artifactSet>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                        <transformers combine.children="append">
                            <!-- TODO:这个防止多个connector的相同类名覆盖-->
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            <!--指定 主类-->
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.sjzy.FlinkCDC</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>



参考答案:

ava -jar xxx.jar.看pom配置 应该依赖没打进去 或者指定一下classpath。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/590812

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
打赏
0
1
1
0
1160
分享
相关文章
Amoro + Flink CDC 数据融合入湖新体验
本文总结了货拉拉高级大数据开发工程师陈政羽在Flink Forward Asia 2024上的分享,聚焦Flink CDC在货拉拉的应用与优化。内容涵盖CDC应用现状、数据入湖新体验、入湖优化及未来规划。文中详细分析了CDC在多业务场景中的实践,包括数据采集平台化、稳定性建设,以及面临的文件碎片化、Schema演进等挑战。同时介绍了基于Apache Amoro的湖仓融合架构,通过自优化服务解决小文件问题,提升数据新鲜度与读写平衡。未来将深化Paimon与Amoro的结合,打造更高效的入湖生态与自动化优化方案。
138 1
Amoro + Flink CDC 数据融合入湖新体验
Flink CDC 3.4 发布, 优化高频 DDL 处理,支持 Batch 模式,新增 Iceberg 支持
Apache Flink CDC 3.4.0 版本正式发布!经过4个月的开发,此版本强化了对高频表结构变更的支持,新增 batch 执行模式和 Apache Iceberg Sink 连接器,可将数据库数据全增量实时写入 Iceberg 数据湖。51位贡献者完成了259次代码提交,优化了 MySQL、MongoDB 等连接器,并修复多个缺陷。未来 3.5 版本将聚焦脏数据处理、数据限流等能力及 AI 生态对接。欢迎下载体验并提出反馈!
375 1
Flink CDC 3.4 发布, 优化高频 DDL 处理,支持 Batch 模式,新增 Iceberg 支持
Dinky 和 Flink CDC 在实时整库同步的探索之路
本次分享围绕 Dinky 的整库同步技术演进,从传统数据集成方案的痛点出发,探讨了 Flink CDC Yaml 作业的探索历程。内容分为三个部分:起源、探索、未来。在起源部分,分析了传统数据集成方案中全量与增量割裂、时效性低等问题,引出 Flink CDC 的优势;探索部分详细对比了 Dinky CDC Source 和 Flink CDC Pipeline 的架构与能力,深入讲解了 YAML 作业的细节,如模式演变、数据转换等;未来部分则展望了 Dinky 对 Flink CDC 的支持与优化方向,包括 Pipeline 转换功能、Transform 扩展及实时湖仓治理等。
498 12
Dinky 和 Flink CDC 在实时整库同步的探索之路
Flink CDC + Kafka 加速业务实时化
Flink CDC 是一种支持流批一体的分布式数据集成工具,通过 YAML 配置实现数据传输过程中的路由与转换操作。它已从单一数据源的 CDC 数据流发展为完整的数据同步解决方案,支持 MySQL、Kafka 等多种数据源和目标端(如 Delta Lake、Iceberg)。其核心功能包括多样化数据输入链路、Schema Evolution、Transform 和 Routing 模块,以及丰富的监控指标。相比传统 SQL 和 DataStream 作业,Flink CDC 提供更灵活的 Schema 变更控制和原始 binlog 同步能力。
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
2758 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
335 56
Flink CDC 在阿里云实时计算Flink版的云上实践
本文整理自阿里云高级开发工程师阮航在Flink Forward Asia 2024的分享,重点介绍了Flink CDC与实时计算Flink的集成、CDC YAML的核心功能及应用场景。主要内容包括:Flink CDC的发展及其在流批数据处理中的作用;CDC YAML支持的同步链路、Transform和Route功能、丰富的监控指标;典型应用场景如整库同步、Binlog原始数据同步、分库分表同步等;并通过两个Demo展示了MySQL整库同步到Paimon和Binlog同步到Kafka的过程。最后,介绍了未来规划,如脏数据处理、数据限流及扩展数据源支持。
410 0
Flink CDC 在阿里云实时计算Flink版的云上实践
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。

相关产品

  • 实时计算 Flink版
  • AI助理
    登录插画

    登录以查看您的控制台资源

    管理云资源
    状态一览
    快捷访问

    你好,我是AI助理

    可以解答问题、推荐解决方案等