flink cdc mysql to hudi 上

460 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

flink cdc mysql to hudi

背景

公司需要使用FlinkCDC同步Mysql数据,通过Hudi实时同步数据到Hadoop/Hive,为下游用户提供实时数据查询。

环境

hdfs环境: image.png jdk:1.8+ scala:2.11 flink:1.13.5 mysql:5.7+ hudi:0.10.0

hudi环境参考

flinkCDC环境参考

flink配置

flink-conf.yaml配置

flink-1.13.1/conf/flink-conf.yaml

taskmanager.numberOfTaskSlots: 4 
#状态管理 
state.backend: rocksdb state.backend.incremental: true 
state.checkpoints.dir: hdfs://<hdfsclustername>/tmp/flink/checkpoints 
#类加载 
classloader.check-leaked-classloader: false 
classloader.resolve-order: parent-first 
#on yarn配置, cluster_namespace为hdfs命名空间 
rest.address: cluster_namespace   
jobmanager.rpc.address: cluster_namespace 
jobmanager.archive.fs.dir: hdfs://<hdfsclustername>/tmp/flink/completed-jobs/ 
historyserver.archive.fs.dir: hdfs://<hdfsclustername>/tmp/flink/completed-jobs/

sql-client-defaults.yaml配置

flink-1.13.1/conf/sql-client-defaults.yaml

execution:
     planner: blink
     type: streaming

FLINK_HOME/lib下添加依赖

image.png


 # flinkcdc编译文件 
flink-format-changelog-json-2.1.1.jar 
flink-sql-connector-mysql-cdc-2.2.1.jar
# flinkcdc依赖 flink-sql-connector-kafka_2.11-1.13.5.jar  
#HADOOP_HOME/lib下拷贝 

hadoop-mapreduce-client-common-3.1.1.3.1.4.0-315.jar
 
hadoop-mapreduce-client-core-3.1.1.3.1.4.0-315.jar

hadoop-mapreduce-client-jobclient-3.1.1.3.1.4.0-315.jar
 
# hudi编译文件 hudi-flink-bundle_2.11-0.10.0.jar
hudi-flink-bundle_2.11-0.10.0.jar

启动flink yarn session服务

./bin/yarn-session.sh -s 4 -jm 1024 -tm 2048 -nm flink-hudi -d

Flink on yarn session启动成功

重新执行命令,flink on yarn session启动成功,命令行日志中可以看到对应的yarn applicationId。

image.png

image.png

image.png 点击Yarn web UI下的 ApplicationMaster进入Flink session集群,后续在这里跟踪flinkcdc作业状态。

启动Flink sql client

 ./bin/sql-client.sh -s yarn-session -j lib/hudi-flink-bundle_2.11-0.10.0.jar shell