0


canal同步数据到es(windows)

1、下载canal的各个组件

canal-server

canal-adapter

下载地址Releases · alibaba/canal · GitHub

2、修改mysql配置文件

canal会模拟MySQL主库和从库的交互协议,从而伪装成MySQL的从库,然后向MySQL主库发送dump协议,MySQL主库收到dump请求会向canal推送binlog,canal通过解析binlog将数据同步到其他存储中去。

修改mysql配置文件 开启binlog日志,并且以ROW方式,开启主从模式 以及logbin的文件位置 如下:

记得重启下mysql 查看MySQL配置是否开启

SHOW VARIABLES LIKE 'binlog-format'; -- 结果应该是ROW
SHOW VARIABLES LIKE 'log_bin'; -- 结果应该是 ON
SHOW VARIABLES LIKE '%log%'; -- 所有binlog信息

创建一个给canal用的一个用户

CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'canal'@'%';
FLUSH PRIVILEGES;

3、canal-server(canal.deployer-1.1.6)
解压修改配置
canal-server的配置在\canal.deployer-1.1.6\conf\example文件下的instance.properties

修改了其中

# username/password
 canal.instance.dbUsername=root
 canal.instance.dbPassword=123456
bin目录下运行startup.bat

canal.deployer-1.1.6\logs\example下查看example.log

canal.deployer启动

成功

4、

canal-adapter解压修改配置
canal-adapter的配置文件在canal.adapter-1.1.6\conf文件下的application.yml

注意127.0.0.1:9200前要加http://

在canal.adapter-1.1.6\conf\es6文件下创建yml文件

name_index索引要提前在es中设置好

bin目录下startup.bat

启动成功adapter.log

全量同步dao

curl http://localhost:8081/etl/es6/name.yml -X POST

新增修改mysql会同步到es,adapter.log会打印出修改日志,

遇到的几个问题

1、如果adapter.log会打印出修改数据库的日志,只能全量同步,不能增量同步。

instance.properties中的

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

2、llegalArgumentException: Illegal character in scheme name at index 0: 127.0.0.1:9200

3、destination:example[java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file

MySQL中show master status;

执行

reset master;

flush logs;

删除canal.deployer-1.1.6\conf\example文件下meta.dat文件后重启

标签: 大数据

本文转载自: https://blog.csdn.net/qq_37185361/article/details/125808233
版权归原作者 倫之 所有, 如有侵权,请联系我们删除。

“canal同步数据到es(windows)”的评论:

还没有评论