一、初始化 Maxwell 元数据库
- 在 MySQL 中建立一个 maxwell 库用于存储 Maxwell 的元数据
mysql -uroot -proot
mysql> CREATE DATABASE maxwell ;
- 设置安全级别
-
mysql> set global validate_password_length=4;
-
mysql> set global validate_password_policy=0;
- 分配一个账号可以操作该数据库
GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '123456';
- 分配这个账号可以监控其他数据库的权限
GRANT SELECT,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO maxwelll@
二、使用Maxwell 监控抓取 MySQL 数据
vim config.properties
# tl;dr config
log_level=error
producer=kafka
kafka.bootstrap.servers=hadoop106:9092,hadoop107:9092,hadoop108:9092
# mysql login info
host=hadoop106
user=maxwell
password=123456
#需要添加
kafka_topic=ods_base_db_m
#需要添加 后续初始化会用
client_id=maxwell_1
注意:默认还是输出到指定 Kafka 主题的一个 kafka 分区,因为多个分区并行可能会打乱
binlog 的顺序
如果要提高并行度,首先设置 kafka 的分区数>1,然后设置 producer_partition_by 属性可选值 producer_partition_by=database|table|primary_key|random| column
vim /root/shells/maxwell.sh
/opt/module/maxwell-1.25.0/bin/maxwell --config /opt/module/maxwell-1.25.0/config.properties >/dev/null 2>&1 &
运行 maxwell.sh
消费 kafka topic ods_base_db_m
cd /opt/module/rt_dblog
java -jar gmall2020-mock-db-2020-11-27.jar
三、Maxwell 的初始化数据功能
bin/maxwell-bootstrap --user maxwell --password 123456 --host hadoop106
--database gmall2021 --table user_info --client_id maxwell_1
- --user maxwell
数据库分配的操作 maxwell 数据库的用户名
- --password 123456
数据库分配的操作 maxwell 数据库的密码
- --host
数据库主机名
- --database
数据库名
- --table
表名
- --client_id
maxwell-bootstrap 不具备将数据直接导入kafka 或者hbase 的能力,通过--client_id 指定将数据交给哪个 maxwell 进程处理,在 maxwell 的 conf.properties 中配置