监控MySQL的binlog的工具
搭建canal
1、开启mysql binlog
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
修改my.cnf
vim /etc/my.cnf
[mysqld]
打开binlog
log-bin=mysql-bin
选择ROW(行)模式
binlog-format=ROW
配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1
改了配置文件之后,重启MySQL,使用命令查看是否打开binlog模式:
service mysqld restart
show variables like ‘log_bin’;
2、上传解压配置环境变量
mkdir canal
tar -xvf canal.deployer-1.1.4.tar.gz -C canal
3、修改配置文件conf/example/instance.properties
mysql 地址
canal.instance.master.address=master:3306
mysql用户名
canal.instance.dbUsername=root
mysql密码
canal.instance.dbPassword=123456
数据写入kafka 的topic
canal.mq.topic=example
监控gma数据库,不同的表发送到表名的topic上, tast mysql的库名
canal.mq.dynamicTopic=student\…*
4、修改配置文件conf/canal.properties
zk地址
canal.zkServers = master:2181,node1:2181,node2:2181
数据保存到kafka
canal.serverMode = kafka
kafka集群地址
canal.mq.servers = master:9092,node1:9092,node2:9092
启动
cd /usr/local/soft/canal/bin
./startup.sh
测试canal
在test数据库创建一个订单表,并且执行几个简单的DML:
use `student`;
CREATE TABLE `order`
(
id BIGINT UNIQUE PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
order_id VARCHAR(64) COMMENT '订单ID',
amount DECIMAL(10, 2) COMMENT '订单金额',
create_time DATETIME COMMENT '创建时间',
UNIQUE uniq_order_id (`order_id`)
) COMMENT '订单表';
INSERT INTO `order`(order_id, amount) VALUES ('10087', 999);
UPDATE `order` SET amount = 10087 WHERE order_id = '10086';
DELETE FROM `order` WHERE order_id = '10086';
6、可以利用Kafka的kafka-console-consumer或者Kafka Tools查看test这个topic的数据:
kafka-console-consumer.sh --bootstrap-server master:9092,node1:9092,node2:9092 --from-beginning --topic example
我们发现,在MySQL端做的操作,在kafka中都可以监视到,这边Kafka会帮我们监视出来json数据格式的数据
将数据放到idea中,ctrl+alt+l 也可以将整体的数据格式显现出来
感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)