文章目录
一、开启mysql的binlog
vim /etc/my.cnf
[mysqld]
# 打开binlog
log-bin=mysql-bin
# # 选择ROW(行)模式
binlog-format=ROW
# # 配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1
binlog_row_image = FULL
expire_logs_days=10
gtid_mode=on
enforce_gtid_consistency=1
log_slave_updates=1
二、配置canal
vim /usr/local/soft/canal-1.1.4/conf/example/instance.properties
更改用户名和密码
设置日志采集到kafka的topic ,以及要监控的数据库
vim /usr/local/soft/canal-1.1.4/conf/canal.properties
设置模式为kafka
三、启动zookeeper,启动kafka,启动canal
开启kafka 对应topic的消费者
kafka-console-consumer.sh --bootstrap-server master:9092 --from-beginning --topic test_topic2
可以看到日志已经采集到kafka
四、打开本地idea,编写代码
添加依赖
编写的代码较多,依赖比较乱,自行选取
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hehe</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<flink.version>1.12.2</flink.version>
<scala.binary.version>2.11</scala.binary.version>
<scala.version>2.11.12</scala.version>
<log4j.version>2.12.1</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-API-java</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-walkthrough-common_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<!-- Apache Flink dependencies -->
<!-- These dependencies are provided, because they should not be packaged into the JAR file. -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_${scala.binary.version}</artifactId>