1.maxwell介绍
maxwell也是通过mysql数据库的主从复制,模拟一个从节点。监听mysql的binlog二进制文件,来反映mysql数据库的变化
2.maxwell安装
2.1安装mysql,并且开启binlog。要求模式是row模式。vim /etc/my.cnf
#数据库id
server-id = 1
#启动binlog,该参数的值会作为binlog的文件名
log-bin=mysql-bin
#binlog类型,maxwell要求为row类型
binlog_format=row
#启用binlog的数据库,需根据实际情况作出修改
binlog-do-db=gmall
重启mysql服务 sudo systemctl restart mysqld
2.2 创建一个数据库,以及用户
1)创建数据库
msyql> CREATE DATABASE maxwell;
2)调整MySQL数据库密码级别
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;
3)创建Maxwell用户并赋予其必要权限
mysql> CREATE USER 'maxwell'@'%' IDENTIFIED BY 'maxwell';
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%';
mysql> GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
2.3 修改maxwell配置
1)修改Maxwell配置文件名称
[atguigu@hadoop102 maxwell]$ cd /opt/module/maxwell
[atguigu@hadoop102 maxwell]$ cp config.properties.example config.properties
2)修改Maxwell配置文件
[atguigu@hadoop102 maxwell]$ vim config.properties
#Maxwell数据发送目的地,可选配置有stdout|file|kafka|kinesis|pubsub|sqs|rabbitmq|redis
producer=kafka
#目标Kafka集群地址
kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092
#目标Kafka topic,可静态配置,例如:maxwell,也可动态配置,例如:%{database}_%{table}
kafka_topic=maxwell
#MySQL相关配置
host=hadoop102
user=maxwell
password=maxwell
jdbc_options=useSSL=false&serverTimezone=Asia/Shanghai
2.4 启动maxwell
1 启动Kafka集群
若Maxwell发送数据的目的地为Kafka集群,则需要先确保Kafka集群为启动状态。
2 Maxwell启停
1)启动Maxwell
[atguigu@hadoop102 ~]$ /opt/module/maxwell/bin/maxwell --config /opt/module/maxwell/config.properties --daemon
2)停止Maxwell
[atguigu@hadoop102 ~]$ ps -ef | grep maxwell | grep -v grep | grep maxwell | awk '{print $2}' | xargs kill -9
2.5 启动kafka,向mysql中插入数据
1)启动Kafka消费者
[atguigu@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic maxwell
3.maxwell注意事项。
1.如果在创建maxwell数据库以后,又想新增监听一个数据库。需要现在mysql那里开启新增一行开启的数据库。然后需要在maxwell库里面的database数据库里面 新增一行数据库的数据。否则会报错找不到数据库