You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件

大数据研发治理套件

复制全文
下载 pdf
数据开发
Flink 1.11 自定义 Connector 编译与问题排查
复制全文
下载 pdf
Flink 1.11 自定义 Connector 编译与问题排查

适用场景

本文适用于在 Serverless Flink SQL 任务中上传 Flink 1.11 自定义 Connector JAR,并处理以下问题的场景:

  • Connector 项目无法完成本地 Maven 编译。
  • Connector 项目依赖无法下载,导致本地编译失败。
  • Connector JAR 上线后出现缺类问题。
  • 需要配置 Connector 日志级别或查看运行日志。

遇到的问题

在 Flink SQL 任务中使用自定义 Connector 时,需要先将 Connector 项目编译为 JAR,然后上传至资源库并在任务中引用。
如果项目只在 properties 中声明 Flink 版本,而没有在 dependencies 中添加实际使用的 Flink 依赖,本地编译无法完成。JAR 上传并被任务引用后,也可能因为依赖缺失出现运行时缺类问题。
排查 Connector 运行行为时,需要查看 Connector 所在 TaskManager 的运行日志;如果未配置合适的日志级别,可能无法看到需要的日志内容。

原因说明

  • properties 只用于定义版本变量,不会自动引入 Connector 项目实际使用的 Flink 依赖。
  • Flink 1.11 运行环境通常已经提供基础 Flink 包,重复将这些依赖打入 JAR 可能引起依赖冲突。
  • 本地开发环境无法获取项目所需依赖时,Connector 项目无法完成编译。
  • Connector 运行在 TaskManager 进程中,相关日志需要在 taskmanager.log 中查看。

处理方法

编译自定义 Connector JAR

  1. 在 pom.xml 的 dependencies 中,显式添加 Connector 实际使用的 Flink 依赖。不要只在 properties 中声明版本变量。

  2. 对于 Flink 1.11 运行环境已经提供的基础包,将依赖范围设置为 provided。Flink 依赖配置示例如下:

    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-table-runtime</artifactId>
        <version>${flink.version}</version>
        <scope>provided</scope>
    </dependency>
    
  3. 如果本地编译时依赖无法下载,请确认依赖版本是否正确,并确保依赖可以从当前开发环境访问;如果仍无法获取,请联系技术支持确认 Flink 1.11 依赖获取方式。

  4. 完成编译后,将生成的 Connector JAR 上传至资源库,并在 Serverless Flink SQL 任务的“引入资源”配置中选择该 JAR。
    Image

  5. 如果任务运行时出现缺类问题,请根据报错中的缺失类确认对应依赖,补充依赖后重新编译并上传 JAR。不要一次性将运行环境已经提供的全部 Flink 基础包打入 JAR。

配置并查看 Connector 日志

  1. 通过任务环境参数 env.log.level 设置任务的全局日志级别。
  2. 提交任务后,进入该任务的 Flink UI,打开对应的 Job。
  3. 选择目标 Connector 算子后,单击 TaskManagers 页签。
  4. 单击目标 TaskManager 对应的 LOG,查看日志。可在 taskmanager.log 中搜索 Connector 类名、Sink 名称、相关日志关键字等。

Image

最近更新时间:2026.10.12 10:53:33
这个页面对您有帮助吗?
有用
有用
无用
无用