无法在kafka connect docker容器中启动clickhouse jdbc

ds97pgxw  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(853)

主要目的是将Kafka主题中的数据传输到clickhouse表中。我想人们会想为什么不使用clickhouseKafka引擎?嗯,有一个已知的问题-重复的消息。我试过最新版本的clickhouse服务器,但都是一样的。
因此,我决定使用kafka connect jdbcsinkconnector,但出现了一个错误:
java.sql.sqlexception:找不到适合的驱动程序jdbc:clickhouse://localhost:8123/default 在java.sql.drivermanager.getconnection(drivermanager。java:689)在java.sql.drivermanager.getconnection(drivermanager。java:208)在io.confluent.connect.jdbc.dialect.genericdatabasedialect.getconnection(genericdatabasedialect。java:211)在io.confluent.connect.jdbc.util.cachedconnectionprovider.newconnection(cachedconnectionprovider。java:88)在io.confluent.connect.jdbc.util.cachedconnectionprovider.getconnection(cachedconnectionprovider。java:62)在io.confluent.connect.jdbc.sink.jdbcdbwriter.write(jdbcdbwriter。java:56)在io.confluent.connect.jdbc.sink.jdbcsinktask.put(jdbcsinktask。java:74)在org.apache.kafka.connect.runtime.workersinktask.delivermessages(workersinktask。java:538)在org.apache.kafka.connect.runtime.workersinktask.poll(workersinktask。java:321)在org.apache.kafka.connect.runtime.workersinktask.iteration(workersinktask。java:224)在org.apache.kafka.connect.runtime.workersinktask.execute(workersinktask)。java:192)在org.apache.kafka.connect.runtime.workertask.dorun(workertask。java:177)在org.apache.kafka.connect.runtime.workertask.run(workertask。java:227)
在java.util.concurrent.executors$runnableadapter.call(executors。java:511)在java.util.concurrent.futuretask.run(futuretask。java:266)位于java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor。java:1149)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor。java:624)在java.lang.thread.run(线程。java:748)
需要安装clickhouse jdbc驱动程序。我找到了官方的jdbc驱动程序,并将clickhouse-jdbc-0.2.4.jar从“releases”选项卡下载到容器中。
还安装了jdk:

apt-get update && apt-get update
apt-get install default-jdk

顺便说一下,kafka connect docker容器是根据以下图像构建的:

confluentinc/cp-kafka-connect:5.2.1

我试着用几种方式运行jar文件(没有 Main-ClassMANIFEST.MF ):

java -jar clickhouse-jdbc-0.2.4.jar

返回错误:
没有主清单属性,在clickhouse-jdbc-0.2.4.jar中
后来我发现如果没有 Main-ClassMANIFEST.MF 这个 -jar 不起作用。我试着命令:

java -cp clickhouse-jdbc-0.2.4.jar ru.yandex.clickhouse.ClickHouseDriver

再次失败并出现错误:
错误:找不到或加载主类ru.yandex.clickhouse.clickhousedriver
安装clickhouse jdbc的正确方法是什么?

vhipe2zx

vhipe2zx1#

司机没有主课。你不能直接运行它们。
docker映像已经有一个有效的jdk,安装另一个并不能解决这个错误。
clickhouse-kafka摄取器可能有“至少一次”的语义,所以无论如何,重复是无法避免的。jdbc源连接器也可能有同样的问题。
你可以把驱动程序放在下面 /usr/share/java/kafka-connect-jdbc - https://www.confluent.io/blog/kafka-connect-deep-dive-jdbc-source-connector/#no-找到合适的驱动程序

相关问题