1、kafka1.0版本以上(bin目录包含connect,conf目录包含connect)
2、下载kafka-connect-jdbc插件https://www.confluent.io/hub/
解压得到以下目录结构:
3、将插件中lib里面的jar文件提取出来,放到kafka的libs目录
4、复制Java的MySQL驱动包到kafka的libs目录
5、将kafka-connect-jdbc中etc目录下文件复制到kafka的config目录下,并修改为connect-mysql-source.properties
根据自己实际情况修改:
name=test-source-sqlite-jdbc-autoincrement
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10
connection.url=jdbc:mysql://192.168.1.185:3306/us_app?user=root&password=xxx@2020
table.whitelist=t_zh_pwbzqx_sbfcms,t_yj_dwyj_qxjl,pdwqy_pms_yx_sbxx
#bulk为批量导入,此外还有incrementing和imestamp模式
mode=bulk
#timestamp.column.name=time
#incrementing.column.name=id
topic.prefix=mysql-
关于配置的说明:https://www.jianshu.com/p/9b1dd28e92f0
6、修改kafka目录下config/connect-standalone.properties
bootstrap.servers=cdh01:9092
#相同id的connect worker属于一个Connect集群
group.id=connect-cluster
#定义数据在Kafka中存储形式
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
7、启动kafka connect
bin/connect-standalone.sh config/connect-standalone.properties config/connect-mysql-source.properties
注意:connect-standalone.sh为单节点模式,此外还有connect-distributed集群模式,使用集群模式则需修改connect-distributed.properties
8、消费kafka,查看是否导入成功
\
PS:遇到类似报错,并不影响使用:
ERROR Plugin class loader for connector: 'io.confluent.connect.jdbc.JdbcSourceConnector' was not found. Returning: org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader@5d1659ea (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:165)
补充(解决上述报错问题):
修改该文档第三步操作,将插件中lib目录下的jar包复制到一个单独的目录,例如我在kafka的lib目录下创建了一个新的文件夹叫connect,然后将插件中lib目录下的jar包都放到该目录下;
然后修改kafka/conf/connect-standalone.properties配置文件,在下方添加
plugin.path=/opt/bigdata/kafka_2.11-2.4.0/libs/connect
9、参考:
https://www.cnblogs.com/darange/p/9857698.html
http://www.ruijihg.com/archives/599
https://www.jianshu.com/p/9b1dd28e92f0
https://www.jianshu.com/p/46b6fa53cae4