使用kafka connect将MySQL数据导入kafka

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值