【问题标题】:Class not found DB2Driver in debezium db2 kafka connect在 debezium db2 kafka connect 中找不到类 DB2Driver
【发布时间】:2021-08-29 18:16:45
【问题描述】:

我正在尝试使用 Kafka 连接(debezium 不可变 docker 映像)部署 debezium db2 连接器。 但是当我使用 kafka REST api 部署 db2 连接器时,它会在 kafka 连接日志中给出以下错误。

"2021-06-13 14:24:35,225 ERROR  ||  WorkerSourceTask{id=lifestyle-connector-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted   [org.apache.kafka.connect.runtime.WorkerTask]           
java.lang.NoClassDefFoundError: com/ibm/db2/jcc/DB2Driver
    at io.debezium.connector.db2.Db2Connection.<clinit>(Db2Connection.java:91)
    at io.debezium.connector.db2.Db2ConnectorTask.start(Db2ConnectorTask.java:74)
    at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130)
    at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:232)
    at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)
    at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)                                   
Caused by: java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 11 more"

我参考了以下教程 https://debezium.io/documentation/reference/tutorial.html#starting-kafka-connect

【问题讨论】:

  • 您是否将 DB2 驱动程序添加到图像的类路径中?
  • @OneCricketeer 我是 docker 新手,你能告诉我怎么做吗?
  • 这个问题与 Docker 无关。您正在遵循的教程适用于 mysql。 Debezium 没有附带 DB2 JDBC 客户端,您需要自己从 IBM 下载。而且你不需要使用 Docker 来使用 Debezium,所以为了简单起见,不用 Docker 开始
  • @OneCricketeer 我正在使用不可变的 docker 图像,但我不确定如何在图像类路径中添加 DB2 jar
  • 安装指南可以在这里找到debezium.io/documentation/reference/connectors/…

标签: apache-kafka apache-kafka-connect debezium


【解决方案1】:

我已经使用 bin bash 登录到 kafka connect,并将 db2 依赖项 jar 从我的本地文件夹复制到 lib 文件夹。 这解决了我的问题。

【讨论】:

    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 2020-07-09
    • 2019-02-14
    • 2020-10-08
    • 2018-11-30
    • 2020-04-25
    • 2020-07-15
    • 2020-08-28
    相关资源
    最近更新 更多