当前位置:   article > 正文

使用Canal同步数据到ES_canal es

canal es

一、Canal概述

1、Canal是什么?

Canal是阿里巴巴开源的一个组件,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。canal的介绍,在github 上的官方文档介绍的很好,我这边就不介绍了。感兴趣的查看git地址:https://github.com/alibaba/canal

2、Canal版本

Canal 1.1.4版本,迎来最重要的WebUI能力,引入canal-admin工程,支持面向WebUI的canal动态 管理能力,支持配置、任务、日志等在线白屏运维能力,具体文档:Canal Admin Guide。

二、Canal同步到ES

1、服务器规划

本地测试准备2台服务器

服务器 部署的服务
a-lf-bigdata mysql、canal-server
b-lf-bigdata mysql、canal-admin、canal-adapter、es、kibana

2、安装mysql

A. 分别在两台机器安装mysql

(1)安装MySQL的yum仓库

yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • 1

(2)安装MySQL

yum -y install mysql-community-server
  • 1

(3)设置为开机启动

systemctl enable mysqld
  • 1

(4)启动MySQL

systemctl start mysqld
  • 1

(5)查看MySQL状态

systemctl status mysqld
  • 1

(6)查看root临时密码

grep 'temporary password' /var/log/mysqld.log
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YEP80Tpf-1631081169438)(/Users/juzi/Library/Application Support/typora-user-images/image-20210907203206489.png)]

(7)修改root密码

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root_12root';
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
set global validate_password.length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root%123';
exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
B. MySQL创建用户
1、在a-lf-bigdata的MySQL创建采集数据的用户
mysql -uroot -p
set global validate_password.policy=0;
set global validate_password.length=1;
CREATE USER canal IDENTIFIED BY '2wsxVFR_';
-- GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在a-lf-bigdata的MySQL开启Binlog格式

vi /etc/my.cnf
  • 1

增加如下配置

server-id=1
log-bin=mysql-bin
binlog-format=ROW
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • log-bin用于指定binlog日志文件名前缀,默认存储在/var/lib/mysql 目录下。

  • server-id用于标识唯一的数据库,不能和别的服务器重复,建议使用ip的最后一段,默认值也不可以。

  • binlog-ignore-db:表示同步的时候忽略的数据库。

  • binlog-do-db:指定需要同步的数据库(如果没有此项,表示同步所有的库)

登录mysql查看:

mysql -uroot -p
show master status;
  • 1
  • 2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zJwXuft1-1631081115828)(/Users/juzi/Library/Application Support/typora-user-images/image-20210907203938217.png)]

如图,binlog就成功开启了。

禁用explicit_defaults_for_timestamp

mysql -uroot -p
SHOW VARIABLES LIKE '%explicit_defaults_for_timestamp%';
set persist explicit_defaults_for_timestamp=0;
SHOW VARIABLES LIKE '%explicit_defaults_for_timestamp%';
  • 1
  • 2
  • 3
  • 4

重启MySQL

systemctl status mysqld
  • 1
2、在b-lf-bigdata的MySQL创建用户
mysql -uroot 
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/502978
    推荐阅读
    相关标签
      

    闽ICP备14008679号