# Maxwell

# 一、安装 Maxwell

官方 (opens new window)下载并解压

hdp1-➜  /opt tar -xzf maxwell-1.35.5.tar.gz
1

# 二、初始化Maxwell元数据库

在 MySQL 中建立一个 maxwell 库用于存储 Maxwell 的元数据

CREATE DATABASE maxwell;
1

分配一个账号可以操作该数据库

GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '000000';
1

分配这个账号可以监控其他数据库的权限

mysql> GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO maxwell@'%';
1

# 三、使用 Maxwell 监控抓取 MySQL 数据

拷贝配置文件

hdp1-➜  maxwell cp config.properties.example config.properties
1

修改配置文件

kafka.bootstrap.servers=hdp1:9092,hdp2:9092,hdp3:9092

# mysql login info
host=k8s-master
port=30054
user=maxwell
password=000000

#需要添加
kafka_topic=ods_base_db_m

#需要添加 初始化会用,跟mysql的id不一样就行
client_id=maxwell_1
1
2
3
4
5
6
7
8
9
10
11
12
13

默认还是输出到指定 Kafka 主题的一个 kafka 分区,因为多个分区并行可能会打乱 binlog 的顺序 如果要提高并行度,首先设置 kafka 的分区数>1,然后设置 producer_partition_by 属性 可选值 producer_partition_by=database|table|primary_key|random| column

在/home/atguigu/bin 目录下编写 maxwell.sh 启动脚本

hdp1-➜  maxwell vim /usr/local/bin/maxwell.sh
export JAVA_HOME=/opt/jdk-11.0.13
/opt/maxwell/bin/maxwell --config /opt/maxwell/config.properties >/dev/null 2>&1 &
1
2
3

授予执行权限

hdp1-➜  ~ chmod +x /usr/local/bin/maxwell.sh
1

运行启动程序

hdp1-➜  ~ maxwell.sh
1

启动kafka消费客户端,观察结果

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server hdp1:9092 --topic ods_base_db_m
1
更新时间: 1/5/2022, 2:36:04 PM