CentOS7安装Canal(Kafka模式)
写在前面
- 确保Mysql配置文件开启
Binlog
,且设置为Row
模式
#开启binlog
log-bin=mysql-bin
#指定binlog格式
binlog_format=row
#指定开启binlog的数据库,不配置则所有库都开启
binlog-do-db=gmall-2021
- Mysql安装方式见《CentOS7安装Mysql-5.7.30》
- Mysql中添加canal用户并授权
set global validate_password_length=4;
set global validate_password_policy=0;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal';
flush privileges;
下载Canal
自行下载所需要的版本,附上canal.deployer-1.1.2.tar.gz
百度云地址
解压缩
#先创建目录,软件保存到哪里看个人喜好
mkdir /opt/module/canal
tar xzvf canal.deployer-1.1.2.tar.gz -C /opt/module/canal/
修改配置文件
vim /opt/module/canal/conf/canal.properties
# 修改如下配置
canal.serverMode = kafka
canal.mq.servers = hadoop102:9092,hadoop103:9092,hadoop104:9092
vim /opt/module/canal/conf/example/instance.properties
# 放开如下配置,此处类似mysql主从复制,需要配置和其它mysql实例不同的id
canal.instance.mysql.slaveId=20
# 修改如下配置
canal.instance.master.address=hadoop102:33066
# 下列配置与开头的账户一致
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
# 指定kafka主题
canal.mq.topic=canal_test
启停服务端
/opt/module/canal/bin/startup.sh
/opt/module/canal/bin/stop.sh
kafka数据格式
kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic canal_test