我想在confluent
上使用JDBC连接器。当我开始使用Confluent CLI连接时,它不起作用。
confluent local start connect
并给出此错误:
Caused by: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@10.10.10.10:1954/MYSERVICE
我停止连接并手动启动connect-distributed
,或独立运行时出现相同的错误
./bin/connect-distributed etc/schema-registry/connect-avro-distributed.properties
但是when I set CLASSPATH
则上述代码可以正常工作并将数据传输到Oracle。
CLASSPATH
但是仍然无法使用export CLASSPATH=/home/my_confluent/confluent-5.4.1/share/java/kafka-connect-jdbc/ojdbc6.jar
服务执行相同的操作。
[当我举起connect
时
confluent connect
它给出相同的错误。
最后经过多次尝试,我找到了解决方案。
我已将confluent local start connect
文件复制到ojdbc6.jar
文件夹中,然后重新启动连接服务,并且它像魅力一样运转。
供参考
JDBC驱动程序必须与JDBC接收器连接器位于同一文件夹中。
因此,如果JDBC接收器连接器(/home/ersin/confluent-5.4.1/share/java/kafka/
)在kafka-connect-jdbc-5.4.1.jar
中,则将etc/kafka-connect-jdbc
放在该文件夹中。
The Confluent CLI使用Golang在下面启动脚本,因此可以解释为什么导出Java特定变量不起作用的原因,但是,假设您ojdbc6.jar
,则在同一终端进程中运行any进程,它应该继承那些变量。
[export CLASSPATH=/any/path/to/jdbc-drivers/*.jar
内部调用某些confluent local start connect
)函数,这是通过exec.command("connect-distributed"
运行的Java方法调用>