CDC-Canal 的搭建与测试
CDC-Canal 的搭建与测试
Canal 单机版测试
下载好canal解压放到指定目录:
1 | (base) [dw@hadoop116 module]$ pwd |
MySql创建canal账户并赋权
1 | (base) [dw@hadoop116 example]$ mysql -uroot -p888888 |
修改配置文件
1 | (base) [dw@hadoop116 canal-1.1.4]$ pwd |
修改配置文件canal.properties内容:
1 | # tcp, kafka, RocketMQ |
修改配置文件instance.properties内容,我们这里只读取一个 MySQL 数据,所以只有一个实例,这个实例的配置文件在conf/example 目录下 :
1 | (base) [dw@hadoop116 example]$ pwd |
修改以下内容:
1 | # 配置 MySQL 服务器地址 |
注意:默认还是输出到指定 Kafka 主题的一个 kafka 分区,因为多个分区并行可能会打乱binlog 的顺序。如果要提高并行度,首先设置 kafka 的分区数>1,然后设置 canal.mq.partitionHash 属性
单机Canal测试
canal也可以进行断点续传,断点续传的元数据信息存储在/opt/module/canal-1.1.4/conf/example
下,一般命名为meta.dat
,依赖于本地磁盘,里面存的是读取到的binlog位置信息。
Maxwell的断点续传功能存储的元数据信息放在MySql里;
Canal的断点续传功能存储的元数据信息放在根目录的
/opt/module/canal-1.1.4/conf/example/meta.dat
里;FlinkCDC的断点续传功能存储的元数据信息放在Checkpoint;
开启Kafka消费者
1 | (base) [dw@hadoop116 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop116:9092 --topic ods_base_db_c |
启动canal
1 | (base) [dw@hadoop116 canal-1.1.4]$ bin/startup.sh |
增删改测试
c u d数据进行测试:
kafka consumer输出:
1 | (base) [dw@hadoop116 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop116:9092 --topic ods_base_db_c |
可以看到,Canal的输出和Maxwell相似。
评论