Maxwell监听mysql的binlog日志变化写入kafka消费者

news2024/11/23 6:22:54

一. 环境: maxwell:v1.29.2   (从1.30开始maxwell停止了对java8的使用,改为为11)

 maxwell1.29.2这个版本对mysql8.0以后的缺少utf8mb3字符的解码问题,需要对原码中加上一个部分内容 :具体也给大家做了总结 : 

关于v1.29.2 版本的Maxwell存在于mysql8.0后版本部分源码字符集处理确实问题-CSDN博客

二. 程序这里还是那一个kafka模拟器来实时向mysql写数据做测试:

               

 maxwell可以成功将监听到的binlog日志信息写入到kafka的主题中去消费

三. 关于maxwell的配置以及启动方式:

1. 配置mysql的my.cnf配置文件开启binlog日志

 sudo  vim  /etc/my.cnf


在[mysqld]模块下添加一下内容

[mysqld]
server_id=1
log-bin=mysql-bin
binlog_format=row

#binlog-do-db=test_maxwell
 


然后并重启 Mysql 服务
sudo  systemctl  restart  mysqld
 


登录 mysql 并查看是否修改完成 使用:
mysql>   show  variables  like  '%binlog%';
查看下列属性

binlog_format	|   ROW

 2.查看mysql生成的binlog日志文件:正常会生成二个文件 一个初始化文件,一个索引记录文件

cd  /var/lib/mysql
 sudo  ls  -l |grep binlog
总用量  188500
-rw-r-----.   1   mysql   mysql	154   11 月  17   16:30   mysql-
bin.000001
-rw-r-----.   1   mysql   mysql	19   11 月  17   16:30   mysql-
bin.index

 3.初始化Maxwell元数据库

(1)建立一个 maxwell 库用于存储 Maxwell 的元数据
mysql>   CREATE   DATABASE   maxwell;
(2)设置 mysql 用户密码安全级别感觉8.1后也不管用啊
mysql> set   global   validate_password_length=4;
mysql> set   global   validate_password_policy=0;
(3)创建一个maxwell账号可以操作该数据库 :user=maxwell ,PW:123456
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '123456';
(4)分配这个账号可以监控其他数据库的权限,查看其对应的binlog日志
mysql> GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON
*.*  TO  maxwell@'%';
(5)最后记得刷新权限即可
mysql>flush   privileges;

4.启动maxwell的方式有二种:

4.1 .纯指令式

4.1.1 : 打印在console

bin/maxwell 
--user='maxwell' 
--password='123456' 
--host='hadoop102' 
--producer=stdout

4.1.2  : binlog消费到kafka的topic中

bin/maxwell 
--user='maxwell'
--password='123456!'
--host='localhost'
--producer=kafka 
--kafka.bootstrap.servers=hadoop103:9092,hadoop104:9092
--kafka_topic=maxwelltest

4.2 指定config文件式

vim  config.properties
 

#   tl;dr   config
log_level=info
producer=kafka
 
#   mysql   login   info
host=hadoop102
user=maxwell
password=123456

#	***   kafka   ***
#   list   of   kafka   brokers

kafka.bootstrap.servers=hosta:9092,hostb:9092
kafka_topic=maxwell
 

这种config式的配置之后在使用指令式的时候不能再加host参数和指定value了会报错

 5.开启kafka消费者来消费binlog二进制数据

kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic topic_name

# 如果要kafka消费的数据直接写入hdfs:

kafka-console-consumer.sh --bootstrap-server hadoop103:9092,hadoop104:9092 --topic topic-name | hadoop fs -put - /dataset/lixianData/text.txt  # 这里写入到这个txt文件中,提前建好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1532473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GaussDB(分布式)实例故障处理

一、说明 GaussDB Kernel实例出现故障时,可以按照本节的办法进行实例快速修复。 1、执行gs_om -t status --detail查看集群状态,cluster_state为Normal,balanced为No,请重置实例状态。 2、执行gs_om -t status --detail查看集群…

MySQl基础入门⑩

上一章内容 数据插入、更新与删除 以下是创建一个名为users的表并定义其字段结构的SQL命令(以MySQL为例): CREATE TABLE users (id INT AUTO_INCREMENT, username VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL UNIQUE,password VAR…

new mars3d.layer.GeoJsonLayer({的pupup配置参考

new mars3d.layer.GeoJsonLayer({的pupup配置可选项以及相关效果参考: 说明:popup按属性字段配置,可以是字符串模板或数组 1.popup仅配置{type}{name}等属性的的时候,指显示json文件内数据的type与name,效果如下 相关…

关系型数据库mysql(2)SQL语句

目录 一.SQL语句简介 1.1SQL语言 1.2SQL语句分类 1.3SQL分类 1.4SQL 语言规范 二.数据库基本操作 2.1查看数据库中的库信息 2.2查看数据库中的表信息 数据库内查看 数据库外查看 2.3显示数据库的结构(字段) ​编辑 2.4 字段属性 2.5常见的数…

记录一下目前为止的算法成长

每日笔记 复习曲线 间隔1天、3天、7天、15天、30天,然后以一个月为周期复习 2023. 12. 24 一定要每天早中晚都要复习一下 早中午每段一两道, 而且一定要是同一个类型, 不然刷起来都没有意义 11.29 开始向着面试刷题跟进! 每天刷4题左右 ,一周之内一定要是统一类…

这里是一本关于 DevOps 企业级 CI/CD 实战的书籍...

文章目录 📋 前言🎯 什么是 DevOps🎯 什么是 CI/CD🎯什么是 Jenkins🧩 Jenkins 简单案例 🎯 DevOps 企业级实战书籍推荐🔥 参与方式 📋 前言 企业级 CI/CD 实战是一个涉及到软件开发…

AIOCR:AI文字识别web集成系统@Kylin+RISCV

基于kotti_ai的AI文字识别web集成系统 AIOCR项目目标: 在KylinRISCV搭建一个kotti_ai构架的网站,提供AI OCR文字识别web服务。 二期目标:在AIOCR的基础上提供chatgpt和文心一言等大模型调用,建立综合大模型应用平台。 功能&am…

STL_list文档使用介绍与底层代码实现简介

文章目录 list介绍list的使用构造函数(constructor)迭代器list capacitylist modify(修改)其他接口函数list迭代器失效问题 list实现基础框架(节点类)基础框架(迭代器类)基础框架(链…

爬虫系列-CSS基础语法

🌈个人主页:会编程的果子君 💫个人格言:“成为自己未来的主人~” CSS全称层叠样式表 ,主要用来定义页面内容展示效果的一门语言,HTML:页面骨架,素颜CSS:页面效果美化&#xff1a…

【概念】神马是分布式?

SueWakeup​​​​​ 个人主页:SueWakeup 系列专栏:学习Java框架 个性签名:保留赤子之心也许是种幸运吧 本文封面由 凯楠📷 友情赞助播出! 目录 前言 1. 系统架构的演变 2. SOA 与微服务的关系 3. 分布式核心知识…

PCL QT visualizer

PCL QT visualizer 用Qt创建PCL 可视化应用程序。 项目组织 UI界面 Compile & Run cmake -B build -S . -DCMAKE_TOOLCHAIN_FILED:\vcpkg\scripts\buildsystems\vcpkg.cmakecmake --build build --config Releasewindeployqt6.exe .\pcl_visualizer.exe.\build\Release\…

“因聚而生,数智有为”实在智能Agent牵手华为生态合作

近日,2024华为中国合作伙伴大会顺利闭幕,实在智能受邀出席,携TARS大模型及实在Agent(智能体)数字员工精彩亮相,与华为生态伙伴共同探讨如何帮助客户抓住数智化转型的巨大机遇,加速培育“新质生产…

Python数学建模-2.9Matplotlib库

Matplotlib库是Python中一个非常流行的绘图库,它提供了大量的绘图工具,可以生成各种类型的静态、动态、交互式的图表。Matplotlib的设计初衷是为了与NumPy配合使用,从而提供一个强大的数学绘图工具。 1.Matplotlib的主要特点 丰富的图表类型…

vue2 中使用音频

vue2 中使用音频 在 template 页面 写入 audio 标签 <template><div><audio ref"moreAudio" :src"moreAudioSrc"></audio><audio ref"noAudio" :src"noAudioSrc"></audio></div> </t…

MySQL 索引的分类和优化

​ 优质博文&#xff1a;IT-BLOG-CN 索引是什么 &#xff1a; MySQL 官方对索引的定义&#xff1a;索引&#xff08;Index&#xff09;是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质&#xff1a;索引是数据结构。索引的目的在于提高查询效率。可以简单理解为&#…

css实现的3D立体视觉效果鸡蛋动画特效

这是一个基于纯css实现的3D立体视觉效果鸡蛋动画特效&#xff0c;喜欢的朋友可以拿来使用演示动态效果 css实现的3D立体视觉效果鸡蛋动画特效

音频和视频标签

音频用audio标签 controls表示控制栏 loop循环播放音频 autoplay自动播放&#xff08;浏览器基于隐私一般不支持&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

从零到一构建短链接系统(八)

1.git上传远程仓库&#xff08;现在才想起来&#xff09; git init git add . git commit -m "first commit" git remote add origin OLiyscxm/shortlink git push -u origin "master" 2.开发全局异常拦截器之后就可以简化UserController 拦截器可以…

分布式文件存储与数据缓存(二)| Redis

目录 Redis概述_什么是NoSQLNoSQL的四大分类KV型NoSql&#xff08;代表----Redis&#xff09;列式NoSql&#xff08;代表----HBase&#xff09;文档型NoSql&#xff08;代表----MongoDB&#xff09;搜索型NoSql&#xff08;代表----ElasticSearch&#xff09; 关系型数据库和非…

【Kotlin】扩展属性、扩展函数

1 类的扩展 Kotlin 提供了扩展类或接口的操作&#xff0c;而无需通过类继承或使用装饰器等设计模式&#xff0c;来为某个类添加一些额外的属性或函数&#xff0c;我们只需要通过一个被称为扩展的特殊声明来完成。通过这种机制&#xff0c;我们可以将那些第三方类不具备的功能强…