binglog之Maxwell组件使用

一、Zookeeper

1.1、下载zk

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -zxvf zookeeper-3.4.10.tar.gz

图片描述(最多50字)
1.2、制定配置文件

cd zookeeper-3.4.10/conf
cp zoo_sample.cfg zoo.cfg

图片描述(最多50字)
1.3、启动zk

./zkServer.sh start

在这里插入图片描述

二、Kafka

2.1、下载Kafka

wget http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
tar -zxvf kafka_2

2.2、启动Kafka

bin/kafka-server-start.sh config/server.properties

在这里插入图片描述
2.3、制定Kafka内存、并且启动Kafka

在这里插入图片描述

2.4、创建一个为“maxwell“的topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic maxwell

在这里插入图片描述

三、Maxwell组件

3.1、下载maxwell组件

wget https://github.com/zendesk/maxwell/releases/download/v1.10.7/maxwell-1.10.7.tar.gz 
tar -zxvf maxwell-1.10.7.tar.gz

在这里插入图片描述

四、更新数据库权限

4.1、给数据库新增用户名/密码均为maxwell的权限

GRANT ALL on maxwell.* to'maxwell'@'%' identified by 'maxwell';

GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE on *.* to 'maxwell'@'%';

flush privileges;

在这里插入图片描述
4.2、启动maxwell

bin/maxwell --user='maxwell' --password='maxwell' --host='127.0.0.1'

图片描述(最多50字)

五、实践

修改表中的数据
在这里插入图片描述

然后看到maxwell的日志

六、bootstrap引导操作

Maxwell提供了对于需要对同步表的初始化操作,针对初始化的问题,Maxwell 提供了一个命令工具 maxwell-bootstrap 帮助我们完成数据初始化,maxwell-bootstrap 是基于 SELECT * FROM table 的方式进行全量数据初始化,不会产生多余的binlog!

如果进行过maxwell抽取, 需要清空binlog, 删除maxwell库中的表, 然后启动Kafka、Maxwell和Kafka消费者, 再启动bootstrap命令:

bin/maxwell-bootstrap --user maxwell --password 123456 --host 127.0.0.1  --database test --table test --client_id maxwell

注意:**--bootstrapper=sync** 时,在处理bootstrap时,会阻塞正常的binlog解析;--bootstrapper=async 时,不会阻塞。

也可以执行下面的SQL,在 maxwell.bootstrap 表中插入记录,手动触发:

insert into maxwell.bootstrap (database_name, table_name, where_clause) values ('test', 'test', 'id>1000');
参数说明
–log_level LOG_LEVEL日志级别(DEBUG, INFO, WARN or ERROR)
–user USERMySQL 用户名
–password PASSWORDMySQL 密码
–host HOSTMySQL 地址
–port PORTMySQL 端口
–database DATABASE要bootstrap的表所在的数据库
–table TABLE要引导的表
–where WHERE_CLAUSE设置过滤条件
–client_id CLIENT_ID指定执行引导操作的Maxwell实例