大数据之Canal安装与配置

Canal是一款基于MySQL binlog解析的增量数据订阅与消费中间件。本文详细介绍Canal的工作原理及安装配置过程,包括如何在MySQL中设置binlog、授权用户、安装与配置Canal实例等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前,canal主要支持了MySQL的binlog解析,解析完成后才利用canal client 用来处理获得的相关数据。

canal可以记录mysql的binlog的偏移量,对mysql侵入性比较小,支持灵活配置,可以配置输出的存储系统。

一、Canal工作原理

在这里插入图片描述

首先了解一下mysql主备复制原理:

(1)master主库将改变记录,发送到二进制文件(binary log)中

(2)slave从库向mysql Master发送dump协议,将master主库的binary log events拷贝到它的中继日志(relay log)

(3)slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库

canal的工作原理:把自己伪装成slave,从master复制数据。读取binlog是需要master授权的,因为binlog是加密的,授权分用户名密码才能读。master授权后不知道读他的binlog的是从机还是canal,他的所有传输协议都符合从机的标准,所以master一直以为是从机读的。

在这里插入图片描述
二、Canal安装

1、修改MySQL的配置

修改MySQL配置⽂件

vi /etc/my.cnf
[mysqld] 
log-bin=mysql-bin #添加这⼀⾏就ok 
binlog-format=ROW #选择row模式 
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 

重启mysql

service mysqld restart

在mysql中添加一个新的用户

CREATE USER canal IDENTIFIED BY 'canal123'; 

赋予权限

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

刷新权限

FLUSH PRIVILEGES;

创建⼀个数据库

CREATE DATABASE doit CHARSET utf8;

2、安装Canal

① 下载Cannal 1.1.4版本(canal.deployer-1.1.4.tar.gz)

https://github.com/alibaba/canal/releases

②上传到Canan到服务器上,然后解压
在这里插入图片描述
在这里插入图片描述
③修改canal的主配置⽂件canal.properties

#canal跟kafka整合,将数据发送到kafka
canal.serverMode = kafka
#指定kafka broker地址
canal.mq.servers = node-1.51doit.cn:9092,node-2.51doit.cn:9092,node-3.51doit.cn:9092
#数据发送kafka失败重试次数
canal.mq.retries = 10

④修改canal的实例配置⽂件example/instance.propertie

#mysql数据库的地址
canal.instance.master.address=127.0.0.1:3306
#mysql用户名
canal.instance.dbUsername=canal
#mysql密码
canal.instance.dbPassword=canal123
#注释掉使用默认的topic(将数据写入到默认的Topic)
#canal.mq.topic=example
# dynamic topic route by schema or table regex
#将doit的数据库的user表发送到kafka的user1的topic
canal.mq.dynamicTopic=topic1:db1\\.tb1,user1:doit\\.user

⑤启动Canal

bin/startup.sh

⑥ 启动Kafka客户端读取Kafka中的数据

 /bigdata/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node-1.51doit.cn:9092,node-2.51doit.cn:9092,node-3.51doit.cn:9092 --topic topic1 --from-beginning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据同盟会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值