aayong123 2024-07-23 14:18 采纳率: 0%
浏览 25

flinkcdc 3.0启动失败

使用flink cdc 但是启动的时候抛出了下面的异常。请问这是什么原因呢》
我flink用的是1.18.1
flink/lib添加了 mysql-connector-java-8.0.30.jar

flinkcdc版本是3.1.0
finkcdc/lib 添加 了flink-cdc-pipeline-connector-mysql-3.1.0.jar

yaml配置文件如下

################################################################################
# Description: Sync MySQL all tables to MySQL
################################################################################
source:
  type: mysql
  hostname: 169.254.182.11
  port: 3308
  username: root
  password: 123456
  tables: canal-test.\.*
  server-id: 5400-5404
  server-time-zone: Asia/Shanghai
  connection-timeout: 30000
  read-timeout: 60000

sink:
  type: mysql
  url: jdbc:mysql://169.254.182.108:3301/canal-test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&serverTimezone=Asia/Shanghai&useSSL=true&dontTrackOpenResources=true&defaultFetchSize=10000&useCursorFetch=true
  username: root
  password: 123456
  table.create.properties.light_schema_change: true
  table.create.properties.replication_num: 1
  batch-size: 1000

pipeline:
  name: Optimized Sync MySQL Database to MySQL
  parallelism: 2

异常信息


Exception in thread "main" java.lang.RuntimeException: Cannot find factory with identifier "mysql" in the classpath.

Available factory classes are:

org.apache.flink.cdc.connectors.mysql.factory.MySqlDataSourceFactory
        at org.apache.flink.cdc.composer.utils.FactoryDiscoveryUtils.getFactoryByIdentifier(FactoryDiscoveryUtils.java:62)
        at org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.createDataSink(FlinkPipelineComposer.java:156)
        at org.apache.flink.cdc.composer.flink.FlinkPipelineComposer.compose(FlinkPipelineComposer.java:129)
        at org.apache.flink.cdc.cli.CliExecutor.run(CliExecutor.java:71)
        at org.apache.flink.cdc.cli.CliFrontend.main(CliFrontend.java:71)
  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-07-23 14:18
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    根据你提供的信息和问题描述,这里是一些可能的解决方案和步骤来解决你遇到的 Flink CDC 启动失败问题:

    1. 版本兼容性问题

      • 你使用的 Flink 版本是 1.18.1,而 Flink CDC 版本是 3.1.0。通常,Flink CDC Connector 的版本应该与 Flink 版本兼容。但是,Flink CDC Connector 3.1.0 是为 Flink 1.13 及以上版本设计的。你需要使用与 Flink 1.18.1 兼容的 Flink CDC Connector 版本。请下载并使用与你的 Flink 版本相匹配的 Flink CDC Connector。
    2. 依赖库配置问题

      • 确保你添加的 mysql-connector-java-8.0.30.jarflink-cdc-pipeline-connector-mysql-3.1.0.jar 是正确的版本,并且与你的 Flink 版本兼容。如果需要,可以检查 Flink CDC Connector 的官方文档来获取正确的依赖版本。
    3. YAML 配置文件问题

      • 检查 YAML 文件中的配置项是否正确。特别注意 sourcesink 下的配置,确保数据库的连接信息(如主机名、端口、用户名、密码)是正确的,并且格式符合要求。
    4. 异常信息分析

      • 异常信息 Cannot find factory with identifier "mysql" in the classpath. 表明 Flink CDC 在启动时无法找到 mysql 相关的工厂类。这可能是由于依赖库没有正确添加到类路径中,或者是版本不兼容导致的。
    5. 工厂类识别问题

      • 确保 org.apache.flink.cdc.connectors.mysql.factory.MySqlDataSourceFactory 类存在于你的类路径中。如果这个类不存在,你需要检查是否添加了正确的 Flink CDC Connector 依赖。
    6. 其他可能的解决方案

      • 清理并重新构建项目,确保所有的依赖都正确地被包含。
      • 检查 Flink 和 Flink CDC Connector 的日志文件,可能会有更详细的错误信息。
      • 尝试在 Flink 的 plugins 目录下添加 Flink CDC Connector 的依赖,而不是直接添加到 lib 目录下。
    7. 查看官方文档和社区

      • 如果上述步骤都无法解决问题,查看 Flink CDC 的官方文档,特别是关于版本兼容性和配置的部分。
      • 加入 Flink 社区,比如邮件列表、论坛或者 Slack 频道,询问其他用户或开发者可能遇到的类似问题和解决方案。

    最后,如果你需要更详细的帮助,可以提供更多的错误日志或者配置信息,以便进一步分析问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月23日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?