实时计算 Flink版操作报错之连接外部kafka本地执行测试代码报错如何解决

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

问题一:Flink CDC编译build都正常,在idea中执行的时候提示这个错误?


Flink CDC编译build都正常,在idea中执行的时候提示这个错误?


参考回答:

缺少jar包,flink-java-api


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

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



问题二:Flink CDC有人遇到过这个问题吗?


Flink CDC有人遇到过这个问题吗?Caused by: org.apache.flink.util.FlinkRuntimeException: The assigner is not ready to offer finished split information, this should not be called

at com.ververica.cdc.connectors.mysql.source.assigners.MySqlSnapshotSplitAssigner.getFinishedSplitInfos(MySqlSnapshotSplitAssigner.java:355)

at com.ververica.cdc.connectors.mysql.source.assigners.MySqlHybridSplitAssigner.getFinishedSplitInfos(MySqlHybridSplitAssigner.java:139)

at com.ververica.cdc.connectors.mysql.source.enumerator.MySqlSourceEnumerator.sendBinlogMeta(MySqlSourceEnumerator.java:251)

at com.ververica.cdc.connectors.mysql.source.enumerator.MySqlSourceEnumerator.handleSourceEvent(MySqlSourceEnumerator.java:145)

at org.apache.flink.runtime.source.coordinator.SourceCoordinator.lambda$handleEventFromOperator$1(SourceCoordinator.java:167)

at org.apache.flink.runtime.source.coordinator.SourceCoordinator.lambda$runInEventLoop$8(SourceCoordinator.java:329)

... 8 more


参考回答:

看着像是主键分割有异常


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

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



问题三:Flink CDC有没有遇到Oracle表没有获取日志,也没报错?cdc 2.2 oracle19c


Flink CDC有没有遇到Oracle表没有获取日志,也没报错?cdc 2.2 oracle19c


参考回答:

首先确认19的部署模式是不是有pdb库,归档日志是否正常开启


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

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



问题四:flink-cdc2.4.0监听Oracle数据库,监听表发生表结构变更报错挂掉,有解决方案吗?


flink-cdc2.4.0监听Oracle数据库,监听表发生表结构变更报错挂掉, mysql在这一块倒是支持表结构变更不受影响继续监听,oracle是还没支持还是有解决方法?用的是java集成cdc,构造数据源是使用DataStream Source。现在3.0.0会支持吗?


参考回答:

Flink CDC在处理Oracle数据库的变更数据捕获时,对于表结构的变更可能没有像MySQL那样提供无缝的支持。当Oracle数据库中的表结构发生变更时,可能会导致Flink CDC任务失败或者挂起。

目前,Oracle的CDC支持在Flink中主要是通过Debezium Oracle Connector实现的。Debezium在处理Oracle的表结构变更时,可能会遇到一些挑战,因为Oracle的DDL语句和MySQL有所不同,且Oracle的元数据访问也更为复杂。

以下是一些可能的解决方法或注意事项:

  1. 手动干预
  • 在进行表结构变更之前,可以先暂停Flink CDC任务,完成变更后再恢复任务。
  • 或者在变更后,重新配置和启动Flink CDC任务以适应新的表结构。
  1. 使用Debezium的事件筛选功能
  • 可能可以通过配置Debezium Oracle Connector来忽略或者特殊处理DDL事件,但这需要对Debezium的配置和工作原理有深入理解。


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

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



问题五:Flink1.18.0版本连接外部kafka本地执行测试代码报错


版本:Flink1.18.0

代码如下:```

public static void main(String[] args) {

//1、创建TableEnvironment
    EnvironmentSettings settings = EnvironmentSettings.newInstance().build();
    TableEnvironment tEnv = TableEnvironment.create(settings);
    //2、创建source  table
    Schema schema = Schema.newBuilder()
            .column("user", DataTypes.STRING())
            .column("url",DataTypes.STRING())
            .column("cTime", DataTypes.STRING())
            .build();
    tEnv.createTemporaryTable( "sourceTable", TableDescriptor.forConnector("kafka")
            .schema(schema)
            .option("topic","spring_test_kafka_topic")
            .option("properties.bootstrap.servers","xxxxx:9092")
            .option("properties.group.id","clicklog")
            .option("scan.startup.mode","earliest-offset")
            .option("format","json")
            .build()
    );
    //3、创建sink  table
    tEnv.createTemporaryTable("sinkTable",
            TableDescriptor.forConnector("print").schema(schema).build());
    //4、执行sql查询
    //Table resultTable = tEnv.sqlQuery(" select ,userurl,cTime from sourceTable ");
    Table resultTable = tEnv.from("sourceTable")
            .select($("user"), $("url"),$("cTime"));
    //5、输出
    resultTable.executeInsert("sinkTable");
}

```

操作流程:运行代码报错:

请问是什么原因呢,请大佬指点


参考回答:

是引入的依赖包造成的,刚开始参考官方文档引入kafka依赖时,项目的pom文件引入的是flink-connector-kafka,而不是flink-sql-connector-kafka,修改pom文件如下即可,同时要将对应的jar包上传到flink集群各节点的lib包下并重启集群

此外,kafka上的主题名称不要使用下划线,否则会报类似如下的错误:


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

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

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
消息中间件 存储 传感器
317 0
|
6月前
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
751 0
|
8月前
|
Java 调度 流计算
基于Java 17 + Spring Boot 3.2 + Flink 1.18的智慧实验室管理系统核心代码
这是一套基于Java 17、Spring Boot 3.2和Flink 1.18开发的智慧实验室管理系统核心代码。系统涵盖多协议设备接入(支持OPC UA、MQTT等12种工业协议)、实时异常检测(Flink流处理引擎实现设备状态监控)、强化学习调度(Q-Learning算法优化资源分配)、三维可视化(JavaFX与WebGL渲染实验室空间)、微服务架构(Spring Cloud构建分布式体系)及数据湖建设(Spark构建实验室数据仓库)。实际应用中,该系统显著提升了设备调度效率(响应时间从46分钟降至9秒)、设备利用率(从41%提升至89%),并大幅减少实验准备时间和维护成本。
424 0
|
8月前
|
消息中间件 SQL 关系型数据库
Flink CDC + Kafka 加速业务实时化
Flink CDC 是一种支持流批一体的分布式数据集成工具,通过 YAML 配置实现数据传输过程中的路由与转换操作。它已从单一数据源的 CDC 数据流发展为完整的数据同步解决方案,支持 MySQL、Kafka 等多种数据源和目标端(如 Delta Lake、Iceberg)。其核心功能包括多样化数据输入链路、Schema Evolution、Transform 和 Routing 模块,以及丰富的监控指标。相比传统 SQL 和 DataStream 作业,Flink CDC 提供更灵活的 Schema 变更控制和原始 binlog 同步能力。
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
267 11
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
618 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
11月前
|
druid Java 数据库连接
【YashanDB知识库】druid连接池做断网测试,无法自动重新连接
【YashanDB知识库】druid连接池做断网测试,无法自动重新连接
|
8月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1226 23
|
10月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1594 24
|
10月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
458 2

相关产品

  • 实时计算 Flink版