Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JDBC Kafka与DB2的连接_Jdbc_Db2_Apache Kafka Connect_Confluent Platform - Fatal编程技术网

JDBC Kafka与DB2的连接

JDBC Kafka与DB2的连接,jdbc,db2,apache-kafka-connect,confluent-platform,Jdbc,Db2,Apache Kafka Connect,Confluent Platform,我正在努力让Confluent的kafka连接器连接到DB2 我正在docker内部运行一个ubuntu实例来测试pruposes。解决方案需要部署到kubernetes,docker就是这样 我已经使用apt get安装了Confluent平台,并添加了他们的回购协议。所有服务都在运行,kafka、zookeeper、schema和kafka rest 我已经创建了kafka connect属性文件,如本文所述: 我假设这对DB2也是一样的。我在上述教程中缺少的步骤是: java-jarpro

我正在努力让Confluent的kafka连接器连接到DB2

我正在docker内部运行一个ubuntu实例来测试pruposes。解决方案需要部署到kubernetes,docker就是这样

我已经使用apt get安装了Confluent平台,并添加了他们的回购协议。所有服务都在运行,kafka、zookeeper、schema和kafka rest

我已经创建了kafka connect属性文件,如本文所述:

我假设这对DB2也是一样的。我在上述教程中缺少的步骤是:
java-jarprogress\u DATADIRECT\u JDBC\u POSTGRESQL\u ALL.jar

我试着这样运行它:
java-jar/usr/share/java/kafka-connect-jdbc/db2jcc.jar

我得到这个错误:
在/usr/share/java/kafka connect jdbc/db2jcc.jar中没有主清单属性

我还是继续,但我当然会出错:
没有找到适合jdbc的驱动程序:datadirect:db2://db2服务器:50000;User=db2admin;密码=pwd;数据库=测试数据库

这是我启动连接器的命令:
/usr/bin/connect standalone/etc/kafka/connect-standalone.properties/etc/kafka connect jdbc/db2.properties

这是我的属性文件:

name=test-db2-jdbc
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
 connection.url=jdbc:datadirect:db2://db2-server:50000;User=db2admin;Password=pwd;Database=test_db
mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=modified_time
topic.prefix=test_jdbc_
table.whitelist=data_log
我相信我已经接近了。我只需要让DB2驱动程序在java中注册,或者让kafka connect获取它并能够使用它

我尝试了
connector.class
的其他值,但是如果我将其更改为类的名称,就像在其他Java应用程序中一样,我会遇到以下错误:
java.util.concurrent.ExecutionException:org.apache.kafka.connect.errors.ConnectException:Class com.ibm.db2.jcc.DB2Jcc未实现连接器


任何帮助或建议都将不胜感激。

我是您提到的教程的作者,我刚刚注意到这个线程,我看到您正在使用IBM提供的DB2驱动程序(
db2cc.jar
)和DataDirect IBM DB2连接字符串(
jdbc:DataDirect:DB2://DB2服务器:50000;User=db2admin;Password=pwd;Database=test\u db
),这就是为什么只要将连接字符串更改为IBM提供的驱动程序,您就能够正确连接。

您的问题表明您正在尝试为Db2使用datdirect驱动程序(而不是IBM提供的Db2驱动程序)。您是否在容器中安装了datadirect驱动程序,并证明它在Confluence/kafka之外工作?您好。不,我没有在confluence/Kafka之外尝试过。谢谢你的提示。我早该想到的!我对Java不太熟悉,但我看到我们确实在sqoop中使用了这些JAR文件,它们在sqoop中工作。还有什么我可以尝试的吗?请确保启动连接器时,
db2jcc.jar
(以及相应的许可证jar)位于类路径中。非常感谢大家。我们用于sqoop工作的罐子起到了作用。它们的名字相同,但大小不同。显然,它们也是从IBM网站下载的。顺便说一句,ProgressDataDirect的东西根本不起作用。这是我连接器的最后一个db2.properties文件。注意正确的JDBC连接URL:name=test-db2-JDBC-connector.class=io.confluent.connect.JDBC.jdbsourceconnector-connection.URL=JDBC:db2://db2服务器:50000/test\u bpm:schema=schemaName;user=db2admin;password=pwd,然后是分号;