当前位置: 首页 > web >正文

Canal环境搭建并实现和ES数据同步

作者:田超凡

日期:2025年6月7日

Canal安装,启动端口11111、8082:

安装canal-deployer服务端:

https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz

 

cd  /opt/homebrew/etc

mkdir canal-deployer

tar -zxvf canal.deployer-1.1.7.tar.gz

 

修改配置文件:

vi conf/canal.properties

canal.ip = 127.0.0.1

 

vi example/instance.properties

# 需要同步数据的MySQL地址

canal.instance.master.address=127.0.0.1:3306

canal.instance.master.journal.name=

canal.instance.master.position=

canal.instance.master.timestamp=

canal.instance.master.gtid=

# 用于同步数据的数据库账号

canal.instance.dbUsername=账号

# 用于同步数据的数据库密码

canal.instance.dbPassword=密码

# 数据库连接编码

canal.instance.connectionCharset = UTF-8

# 需要订阅binlog的表过滤正则表达式

canal.instance.filter.regex=.*\\..*

 

启动canal-deployer

到 bin 目录下,执行命令:./startup.sh

日志:logs/canal

 

踩坑:

1 canal-deployer启动报错

canal/logs/canal/canal_stdout.log 报错:

Unrecognized VM option 'AggressiveOpts'Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.

Plain Text

 

解决方案:

修改canal/bin/startup.sh:

移除AggressiveOpts、UseBiasedLocking 等 JDK 21中已经不在支持的配置,重新启动.

 

2 安装canal-adapter客户端:

https://github.com/alibaba/canal/releases/1.1.7/canal.adapter-1.1.7.tar.gz

 

cd  /opt/homebrew/etc

mkdir canal-adapter

tar -zxvf canal.adapter-1.1.7.tar.gz

 

修改配置文件:

vi conf/application.properties

port:8082

踩坑:hosts要配置成:http://127.0.0.1:9200,不然会报错

java.lang.RuntimeException: java.lang.IllegalArgumentException: Illegal character in scheme name at index 0: 127.0.0.1:9200

 

继续修改es8配置文件:

vi conf/es8/mytest_user.yml

dataSourceKey: defaultDS

destination: example

groupId: g1

esMapping:

  _index: nfturbo_users

  _id: _id

  #  upsert: true

  #  pk: id

  sql: "select t.id as _id, t.nick_name as  nick_name, t.state as state,t.telephone as telephone  from users as t"

  #  objFields:

  #    _labels: array:;

  #etlCondition: "where a.c_time>={}"

  commitBatch: 3000  

 

修改bin/start.sh

移除AggressiveOpts、UseBiasedLocking 等 JDK 21中已经不在支持的配置,重新启动.

 

启动canal-adapter客户端:

cd canal-adapter/bin

./startup.sh

日志目录:logs/adapter/adapter.log

踩坑:必须先启动mysql8和es8,否则无法启动canal-deployer和canal-adapter

 

canal-deployer服务端(Canal Server)运行端口:11111

canal-adapter客户端(Canal Client)运行端口:8082

 

 

 

测试同步mysql到es8:

登录Kibana,DevTool:

PUT nfturbo_users

{

  "mappings": {

    "properties": {

      "nickname": {

        "type": "text"

      },

      "telephone": {

        "type": "text"

      },

      "state": {

        "type": "text"

      }

    }

  }

}

 

nfturbo.user表插入一条数据:

INSERT INTO `nfturbo`.`users` (`id`,`gmt_create`,`gmt_modified`,`nick_name`,`password_hash`,`state`,`telephone`,`user_role`) VALUES (14,'2024-04-18 17:47:40','2024-04-18 17:47:42','test11111','c2975f0faec10adca0ecd729c8cbc0aa','INIT','13000000000','CUSTOMER')

 

GET nfturbo_users/_search

{"_source": ["nick_name","telephone","state"],

  "query": {

    "match": {

      "nick_name": "test11111"

    }

  }

}

 

 

DELETE nfturbo_users

http://www.xdnf.cn/news/12667.html

相关文章:

  • App Search 和 Workplace Search 独立产品现已弃用
  • Cursor实现用excel数据填充word模版的方法
  • Fetch与Axios:区别、联系、优缺点及使用差异
  • 使用 C/C++ 和 OpenCV 提取图像的感兴趣区域 (ROI)
  • vue3+dify从零手撸AI对话系统
  • JavaWeb的一些基础技术
  • 在Ubuntu上使用 dd 工具制作U盘启动盘
  • 使用Transformer模型进行时间序列预测的完整解决方案,满足预测误差≤1.5%和注意力权重可视化的要求
  • GitHub 趋势日报 (2025年06月06日)
  • 2025年- H76-Lc184--55.跳跃游戏(贪心)--Java版
  • 有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件
  • 信息最大化(Information Maximization)
  • Go语言进阶④:Go的数据结构和Java的有啥不一样
  • 光学字符识别(OCR)理论概述与实践教程
  • 动目标显示处理解析一(脉冲对消器)
  • Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程
  • 前沿论文汇总(机器学习/深度学习/大模型/搜广推/自然语言处理)
  • 数据类型 -- 字符
  • SQL字符串截取函数全解析:LEFT、RIGHT、SUBSTRING 实战指南
  • 如何使用Jmeter进行压力测试?
  • MySQL-运维篇
  • 隐私计算时代B端页面安全设计:数据脱敏与权限体系升级路径
  • 数据结构算法(C语言)
  • 新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
  • 开源之夏·西安电子科技大学站精彩回顾:OpenTiny开源技术下沉校园,点燃高校开发者技术热情
  • 华为云Astro中服务编排、自定义模型,页面表格之间有什么关系?如何连接起来?如何操作?
  • 【第七篇】 SpringBoot项目的热部署
  • Mac 安装git心路历程(心累版)
  • Mysql批处理写入数据库
  • 虚幻基础:角色旋转