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