| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 大数据 -> canal实现从mysql实时同步数据到es -> 正文阅读 |
|
|
[大数据]canal实现从mysql实时同步数据到es |
|
1.环境准备: 1.1? mysql:5.7 1.2?elasticsearch:7.4.2 1.3??kibana:7.4.2 1.4 服务端:canal-deployer1.1.5 1.5 客户端:canal-adapter 1.1.5 2.下载安装MySQL(注:本人项目都是docker安装? 这里就不一一展示安装步骤了? 详情见百度或者看我其他文章)修改mysql配置文件 开启binlog日志,并且以ROW方式,开启主从模式 以及logbin的文件位置 如下: server_id=101
2.1?记得重启下mysql? ?查看MySQL配置是否开启 SHOW VARIABLES LIKE 'binlog-format'; -- 结果应该是ROW ?2.2? 然后给canal创建一个canal账户? 命令如下: CREATE USER canal IDENTIFIED BY 'canal'; ? 2.3 创建一个canal-test库和sys_log测试表 DROP TABLE IF EXISTS `sys_log`; 3.下载安装ES和Kibana? 这里需要注意的是两个版本需要一致? ?这里就不介绍了? ? 如下我自己安装的:
4.下载canal 的服务器端??canal-deployer1.1.5 和客户端?canal-adapter 1.1.5? 下载地址为:https://github.com/alibaba/canal/releases
5. 解压这两个项目 命令: tar -zxvf??canal.adapter-1.1.5.tar.gz tar -zxvf??canal.deployer-1.1.5.tar.gz
6.修改服务端?canal.deployer-1.1.5下conf目录名example为orgdeer-cui? 命令:mv??example??orgdeer-cui? ?然后修改配置conf/orgdeer-cui/instance.properties? ??主要是修改数据库相关配置? ?改下面三个地方? ?如下:
6.启动服务器端canal.deployer-1.1.5? ? 切换目录:cd??/home/canal/canal.deployer-1.1.5/bin 启动:./startup.sh
7.查看日志是否启动成功: tail -f /home/canal/canal.deployer-1.1.5/logs/canal/canal.log?
8. 修改客户端??canal.adapter-1.1.5下的配置?application.yml? ??主要是修改canal-server配置、数据源配置和客户端适配器配置? ?主要改一下带注释的部分 如下: server: canal.conf: ? srcDataSources: 9.启动客户端?canal.adapter-1.1.5? ? 切换目录:cd?/home/canal/canal.adapter-1.1.5/bin 启动:./startup.sh
10 查看客户端日志是否启动成功? tail -f ?/home/canal/canal.adapter-1.1.5/logs/adapter/adapter.log?
11.添加配置文件canal-adapter/conf/es7/sys_log.yml,用于配置MySQL中的表与Elasticsearch中索引的映射关系 (注意destination名称orgdeer-cui要跟服务器端mq topic name对应) 然后将文件sys_log.yml放到/home/canal/canal.adapter-1.1.5/conf/es7目录下?
dataSourceKey: defaultDS
destination: orgdeer-cui
groupId: g1
esMapping:
_index: sys_log
_id: _id
sql: "select
id as _id, type,
title,
create_by as createBy,
UNIX_TIMESTAMP(create_date) as createDate,
remote_addr as remoteAddr,
user_agent as userAgent,
request_uri as requestUri,method,
params,exception
from sys_log"
etlCondition: "where create_date>={}"
commitBatch: 3000
12.在Kibana控制台中创建sys_log索引 PUT sys_log
13.通过命令触发,让canal-adapter读取到的dml日志,同步到es的库中? 命令如下: curl -X POST http://127.0.0.1:8081/etl/es7/sys_log.yml
查看ES中数据同步的情况:
?手动删除? 添加数据? ?ES数据也会跟着同步的??
|
|
|
|
|
| 上一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/22 16:37:10- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |