blog's People
blog's Issues
zsh安装
使用 curl 安装
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"
使用 wget 安装
sh -c "$(wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"
doc
doc
Flink-CDC
数据同步方向 :mysql->starRocks
参考资料:
https://nightlies.apache.org/flink/flink-cdc-docs-release-3.1/zh/docs/get-started/quickstart/mysql-to-starrocks/
https://docs.starrocks.io/docs/loading/Flink_cdc_load/
查看java版本
java -version
下载并解压 Flink
cd /opt
wget https://archive.apache.org/dist/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz
如果apache太慢,改为清华源
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.18.1/flink-1.18.1-bin-scala_2.12.tgz
解压文件
tar -xzf flink-1.18.0-bin-scala_2.12.tgz
进入Flink目录
cd flink-1.18.0
通过在 conf/flink-conf.yaml 配置文件追加下列参数开启 checkpoint,每隔 3 秒做一次 checkpoint。
execution.checkpointing.interval: 3000 #生产环境改为5-10分钟
#启动Flink集群
#启动集群
./bin/start-cluster.sh
#停止集群
./bin/stop-cluster.sh
启动成功的话,可以在 http://localhost:8081/ 访问到 Flink Web UI
通过 Flink CDC CLI 提交任务:
- 下载下面列出的二进制压缩包,并解压得到目录 flink-cdc-3.1.0;
flink-cdc-3.1.0-bin.tar.gz flink-cdc-3.1.0 下会包含 bin、lib、log、conf 四个目录。
wget https://www.apache.org/dyn/closer.lua/flink/flink-cdc-3.1.0/flink-cdc-3.1.0-bin.tar.gz
tar -xzf flink-cdc-3.1.0-bin.tar.gz
同样如果太慢,清华源
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-cdc-3.1.0/flink-cdc-3.1.0-bin.tar.gz
2. 下载下面列出的 connector 包,并且移动到 lib 目录下; 下载链接只对已发布的版本有效, SNAPSHOT 版本需要本地基于 master 或 release- 分支编译。
- MySQL pipeline connector 3.1.0
- StarRocks pipeline connector 3.1.0
wget https://search.maven.org/remotecontent?filepath=org/apache/flink/flink-cdc-pipeline-connector-mysql/3.1.0/flink-cdc-pipeline-connector-mysql-3.1.0.jar
wget https://search.maven.org/remotecontent?filepath=org/apache/flink/flink-cdc-pipeline-connector-starrocks/3.1.0/flink-cdc-pipeline-connector-starrocks-3.1.0.jar
服务器下载太慢的话下载到本地,scp吧
scp ~/Downloads/flink-cdc-pipeline-connector-mysql-3.1.0.jar volcengine-121:/opt/flink-cdc-3.1.0/lib
scp ~/Downloads/flink-cdc-pipeline-connector-starrocks-3.1.0.jar volcengine-121:/opt/flink-cdc-3.1.0/lib
- 您还需要将下面的 Driver 包放在 Flink lib 目录下,或通过 --jar 参数将其传入 Flink CDC CLI,因为 CDC Connectors 不再包含这些 Drivers:
- MySQL Connector Java
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.27/mysql-connector-java-8.0.27.jar
下载本地scp,注意使用mysql-connector-java-8.0.28.jar
scp ~/Downloads/mysql-connector-java-8.0.28.jar volcengine-121:/opt/flink-1.18.1/lib
scp ~/Downloads/mysql-connector-java-8.0.28.jar volcengine-121:/opt/flink-cdc-3.1.0/lib
如果 Flink 已经处于运行状态中,则需要先停止 Flink,然后重启 Flink ,以加载并生效 JAR 包。
./bin/stop-cluster.sh
./bin/start-cluster.sh
配置FLINK_HOME,后面启动CDC的时候需要使用到
export FLINK_HOME=/opt/flink-1.18.1
开启 MySQL Binlog 日志
编辑 MySQL 配置文件 my.cnf(默认路径为 /etc/my.cnf),以开启 MySQL Binlog。
开启 Binlog 日志
log_bin = ON
设置 Binlog 的存储位置
log_bin =/var/lib/mysql/mysql-bin
设置 server_id
在 MySQL 5.7.3 及以后版本,如果没有 server_id,那么设置 binlog 后无法开启 MySQL 服务
server_id = 1
设置 Binlog 模式为 ROW
binlog_format = ROW
binlog 日志的基本文件名,后面会追加标识来表示每一个 Binlog 文件
log_bin_basename =/var/lib/mysql/mysql-bin
binlog 文件的索引文件,管理所有 Binlog 文件的目录
log_bin_index =/var/lib/mysql/mysql-bin.index
执行如下命令,重启 MySQL,生效修改后的配置文件:
使用 service 启动
service mysqld restart
使用 mysqld 脚本启动
/etc/init.d/mysqld restart
连接 MySQL,执行如下语句确认是否已经开启 Binlog:
-- 连接 MySQL
mysql -h xxx.xx.xxx.xx -P 3306 -u root -pxxxxxx
-- 检查是否已经开启 MySQL Binlog,ON
就表示已开启
mysql> SHOW VARIABLES LIKE 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
编写任务配置 yaml 文件。 下面给出了一个整库同步的示例文件 mysql-to-starrocks.yaml:
################################################################################
Description: Sync MySQL all tables to StarRocks
################################################################################
source:
type: mysql
hostname: 127.0.0.1
port: 3306
username: root
password: root
tables: app_db..*
server-id: 1 #server-id 查看mysql的配置
server-time-zone: Asia/Shanghai #注意这个时区要和mysql的时区一致
sink:
type: starrocks
name: StarRocks Sink
jdbc-url: jdbc:mysql://127.0.0.1:9030
load-url: 127.0.0.1:8030
username: root
password: ""
table.create.properties.replication_num: 1 #StarRocks BE 节点数
route:
- source-table: app_db.orders
sink-table: ods_db.ods_orders - source-table: app_db.shipments
sink-table: ods_db.ods_shipments - source-table: app_db.products
sink-table: ods_db.ods_products
pipeline:
name: Sync MySQL Database to StarRocks
parallelism: 2
验证语句
select VERSION();
SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'server_id';
通过命令行提交任务到 Flink Standalone cluster
bash bin/flink-cdc.sh mysql-to-starrocks.yaml
在 Flink Web UI,可以看到一个名为 Sync MySQL Database to StarRocks 的任务正在运行。
http://localhost:8081/
[图片]
测试数据
INSERT INTO app_db.orders (id, price) VALUES (3, 100.00);
ALTER TABLE app_db.orders ADD amount varchar(100) NULL;
UPDATE app_db.orders SET price=100.00, amount=100.00 WHERE id=1;
DELETE FROM app_db.orders WHERE id=2;
ssh多云端口转发
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.