資料採集之解析Mysql的binlog日誌傳送至Kafka實時消費
阿新 • • 發佈:2019-01-06
本文采用Maxwell來實現實時解析mysql的binlog日誌傳送至kafka
1、開啟mysql binlog
環境中mysql是docker容器,所以需要進入容器修改mysql配置.
docker exec -it ef07dab4da9d bash
然後進入/etc/mysql/ 修改my.cnf
增加如下內容
server-id=1
log-bin=master
binlog_format=row
重啟docker容器 ,確認binlog是否開啟
show variables like '%log_bin%';
log_bin屬性值為ON ,則以開啟成功
2、配置並啟動Maxwell
Maxwell的 github地址為 https://github.com/zendesk/maxwell。可去下載最新版。
wget https://github.com/zendesk/maxwell/releases/download/v1.10.7/maxwell-1.10.7.tar.gz
tar -zxf maxwell-1.10.7.tar.gz
bin/maxwell --user='root' --password='123456'--host='10.99.22.24' --producer=kafka --kafka.bootstrap.servers= bigdata001:9092
host為 mysql地址,bigdata001是我機器地址
3、啟動kafka
我這裡kafka是已經安裝好的,直接啟動就可以了,如果沒有可以按照官網的步驟安裝kafka,啟動kafka之前先要啟動 zookeeper
bin/zkServer.sh start
然後開啟kafka
bin/kafka-server-start.sh config/server.properties
建立topic
bin/kafka-topics.sh--create --zookeeper bigdata001:2181 --replication-factor 1 --partitions 1 --topic maxwell
啟動producer
bin/kafka-console-producer.sh--broker-list bigdata001:9092 --topic maxwell
啟動consumer
bin/kafka-console-consumer.sh--zookeeper bigdata001:2181 --topic maxwell --from-beginning
4、測試
改變資料庫可看到如下效果