1. 模拟数据准备

1.1 生成模拟数据

先将HDFS上/origin_data路径下之前的数据删除

1
hadoop fs -rm -r /origin_data/*

启动采集通道

1
cluster.sh start

停止Maxwell

1
mxw.sh stop

修改虚拟机①的/opt/module/applog/application.yml文件,将mock.date,mock.clear,mock.clear.user,mock.new.user,mock.log.db.enable五个参数调整为如下的值(以"2022-06-04"为例)

1
2
3
4
5
6
7
8
9
10
#业务日期
mock.date: "2022-06-04"
#是否重置业务数据
mock.clear.busi: 1
#是否重置用户数据
mock.clear.user: 1
# 批量生成新用户数量
mock.new.user: 100
# 日志是否写入数据库一份 写入z_log表中
mock.log.db.enable: 0

执行数据生成脚本,生成第一天2022-06-04的历史数据

1
lg.sh

修改/opt/module/applog/application.properties文件,将mock.date、mock.clear,mock.clear.user,mock.new.user四个参数调整为如图所示的值。

1
2
3
4
5
6
7
8
#业务日期
mock.date: "2022-06-05"
#是否重置业务数据
mock.clear.busi: 0
#是否重置用户数据
mock.clear.user: 0
# 批量生成新用户
mock.new.user: 0

执行数据生成脚本,生成第二天2022-06-05的历史数据

1
lg.sh

同理,生成6、7日的数据。
删除/origin_data/gmall/log目录,将参数修改为2022-06-08,并生成当日模拟数据

1.2 全量表同步

执行全量表同步脚本

1
mysql_to_hdfs_full.sh all 2022-06-08

这时候观察hdfs上是否会出现数据

1.3 增量同步

进入mysql模式,输入指令,清空Maxwell数据库

1
2
3
4
5
6
7
drop table maxwell.bootstrap;
drop table maxwell.columns;
drop table maxwell.databases;
drop table maxwell.heartbeats;
drop table maxwell.positions;
drop table maxwell.schemas;
drop table maxwell.tables;

修改Maxwell配置文件中的mock_date参数

1
vim /opt/module/maxwell/config.properties

更改为

1
mock_date=2022-06-08

随后执行增量表首日全量同步脚本

1
mysql_to_kafka_inc_init.sh all

之后查看hdfs上是否有文件生成,并查看随机一个文件的内容格式是否正确无误

1
hadoop fs -cat /origin_data/gmall/db/comment_info_inc/2024-12-24/* | zcat