我正在尝试部署一个连接独立作业以从 mssql
服务器流式传输,但是我遇到了一个问题(Kafka-Connect 是我的 Ambari 部署的一部分,而不是 docker)。这是我正在使用的属性文件:
name=JdbcSourceConnector
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.user=ue
connection.password=pw
tasks.max=1
connection.url=jdbc:sqlserver://servername
topic.prefix=iblog
query=SELECT * FROM IB_WEBLOG_DUMMY_small
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter=org.apache.kafka.connect.json.JsonConverter
poll.interval.ms=5000
table.poll.interval.ms=120000
mode=incrementing
incrementing.column.name=ID
我已将jar
文件sqljdbc42.jar
添加到/usr/share/java
并运行 export CLASSPATH=/usr/share/java/*
但是我仍然遇到错误 Failed to find any class that implements Connector and which name matches io.confluent.connect.jdbc.JdbcSourceConnector
我做错了什么或者我可以检查其他东西吗?
最佳答案
Kafka-Connect is part of my Ambari deployment
这意味着您正在使用 Hortonworks 安装
你需要
git clone https://github.com/confluentinc/kafka-connect-jdbc/
- 检查与您的 Kafka 版本完美匹配的发布分支。例如分支
v3.1.2
是 Kafka 0.10.1.1 mvn clean package
会在该项目的target/
中生成一些文件夹- 将这些文件 SCP 到集群中的所有 Kafka Connect worker 到
/usr/hdp/current/kafka/.../share/java/kafka-connect-jdbc
(创建这个,如果没有存在) - 重新启动 Kafka 进程以获取新的 CLASSPATH 设置
您可能需要一些额外的 JDBC 连接所依赖的 Confluent 包
关于java - Kafka-Connect 添加 SQL JAR 文件到类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50576199/