Maxwell安装使用和简单案例

2024-04-20 17:04

本文主要是介绍Maxwell安装使用和简单案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、解压

cd /opt/software/
​
tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/
​
cd /opt/module/

二、MySQL 环境准备

1、修改 mysql 的配置文件

修改 mysql 的配置文件,开启 MySQL Binlog 设置

vi /etc/my.cnf

添加以下内容

server_id=1
log-bin=mysql-bin
binlog_format=row
#binlog-do-db=test_maxwell
​
#(可添加可不添加)
#添加binlog的多个库(用于区分是不是自己的库)
#binlog-do-db=库名

解释

        server_id=1:指定了MySQL服务器实例的唯一标识符,用于复制和识别不同的服务器。 ​

        log-bin=mysql-bin:启用二进制日志(binary log),并指定了二进制日志文件的名称为mysql-bin。二进制日志包含了对数据库所做更改的详细记录,可用于数据复制和恢复等操作。 ​

        binlog_format=row:指定了二进制日志的格式为行级别(row-based)格式。在行级别格式中,二进制日志记录了实际被修改的行的内容。这种格式相对于其他格式(如语句级别或混合级别)更为详细和安全,因为它记录了实际数据的变化,而不仅仅是执行的SQL语句。 ​

        binlog-do-db=test:这个选项定义了需要记录到二进制日志的数据库名称。在这个例子中,只有名为test的数据库的更改会被记录到二进制日志中。这有助于减少二进制日志文件的大小和提高性能,因为不需要记录所有数据库的更改。

2、重启MySQL

#重启MySQL
systemctl restart mysqld
​
#关闭
systemctl stop mysqld
​
#查看
systemctl status mysqld

登录查看是否修改完成

mysql -uroot -pPassword123$

查看下列属性

show variables like '%binlog%';

3、查看 MySQL 生成的 binlog 文件

进入/var/lib/mysql 目录,查看 MySQL 生成的 binlog 文件、

cd /var/lib/mysql

 

cat mysql-bin.index

再次重启

systemctl restart mysqld

查看

4、测试

cd /var/lib/mysql
​
cat mysql-bin.000002

三、初始化 Maxwell 元数据库

1、在 MySQL 中建立一个 maxwell 库

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

mysql -uroot -pPassword123$
​
create database maxwell;

2、设置 mysql 用户密码安全级别(可设置可不设置)

set global validate_password_length=4;
​
set global validate_password_policy=0;

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

grant all on maxwell.* to 'maxwell'@'%' identified by 'Password123$';

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

grant select ,replication slave ,replication client on *.* to maxwell@'%';

 

5、刷新 mysql 表权限

flush privileges;

四、进程启动

Maxwell 进程启动方式有如下两种

1、使用命令行参数启动 Maxwell 进程

cd /opt/module/maxwell-1.29.2/
​
bin/maxwell --user='maxwell' --password='Password123$' --host='master' --producer=stdout

解释

--user 连接 mysql 的用户
--password 连接 mysql 的用户的密码
--host mysql 安装的主机名
--producer 生产者模式(stdout:控制台 kafka:kafka 集群)

测试

修改数据表在控制台即可看到

2、修改配置文件,定制化启动 Maxwell 进程

cd /opt/module/maxwell-1.29.2/
​
cp config.properties.example config.properties
​
vi config.properties
​
#启动命令
bin/maxwell --config ./config.properties

修改以下内容

修改后

启动 

bin/maxwell --config ./config.properties

启动成功

测试

添加或修改

查看

3、查看进程

五、案例

1、监控 Mysql 数据并在控制台打印

先建表

或者

mysql -uroot -pPassword123$
​
#新建数据库
create database test_maxwell;
​
#使用数据库
use test_maxwell;
​
#新建表
create table test (id int,name varchar(50));

(1)运行 maxwell 来监控 mysql 数据更新

启动

cd /opt/module/maxwell-1.29.2/
​
bin/maxwell --user='maxwell' --password='Password123$' --host='master' --producer=stdout

(2)向 test 表插入一条数据

向 mysql 的 test_maxwell库的 test 表插入一条数据,查看 maxwell 的控制台输出

insert into test values(1,'aaa');

{"database":"test_maxwell",  --库名"table":"test",   --表名"type":"insert",  --数据更新类型"ts":1708240480,  --操作时间"xid":397,        --操作 id"commit":true,    --提交成功"data":{          --数据"id":1,"name":"aaa"}
}

(3)向 test 表同时插入 3 条数据

向 mysql 的 test_maxwell 库的 test 表同时插入 3 条数据,控制台出现了 3 条 json日志,说明 maxwell 是以数据行为单位进行日志的采集的。

insert into test values(2,'bbb'),(3,'ccc'),(4,'ddd');

(4)修改 test 表的一条数据

修改 test_maxwell 库的 test 表的一条数据,查看 maxwell 的控制台输出

update test set name='abc' where id =1;

 

{"database":"test_maxwell","table":"test","type":"update","ts":1708241222,"xid":2262,"commit":true,"data":{  --修改后的数据"id":1,"name":"abc"},"old":{   --修改前的数据"name":"aaa"}
}

(5)删除 test 表的一条数据

删除 test_maxwell 库的 test 表的一条数据,查看 maxwell 的控制台输出

delete from test where id=1;

 

2、监控 Mysql 数据输出到 kafka

在mysql进行增删改查的binlog,保存到了kafka里

(1)启动kafka和zooKeeper

启动zooKeeper

# 启动
zkServer.sh start
​
# 查看状态
zkServer.sh status
​
# 停止
zkServer.sh stop

启动kafka

各节点上启动

/opt/module/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-2.4.1/config/server.properties

关闭kafka

/opt/module/kafka_2.11-2.4.1/bin/kafka-server-stop.sh -daemon /opt/module/kafka_2.11-2.4.1/config/server.properties

(2)启动 Maxwell 监控 binlog

cd /opt/module/maxwell-1.29.2/
​
bin/maxwell --user='maxwell' --password='Password123$' --host='master' --producer=kafka --kafka.bootstrap.servers=master:9092 --kafka_topic=maxwell

(3)打开 kafka 的控制台的消费者消费 maxwell 主题

cd /opt/module/kafka_2.11-2.4.1/bin
​
./kafka-console-consumer.sh --bootstrap-server master:9092 --topic maxwell --from-beginning

(4)向 test_maxwell 库的 test 表再次插入一条数据

insert into test values(5,'aaa');

(5)通过 kafka 消费者来查看到了数据,说明数据成功传入 kafka

{"database": "test_maxwell","table": "test","type": "insert","ts": 1708243199,"xid": 6293,"commit": true,"data": {"id": 5,"name": "aaa"}
}

复制一个窗口,查看

cd /opt/module/kafka_2.11-2.4.1/bin
​
./kafka-topics.sh --bootstrap-server master:9092 --list

这篇关于Maxwell安装使用和简单案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/920828

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于