| |
 
  |  
 
| 
	
开发:
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/4 14:48:23- | 
  |  
 
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |