本文為您介紹如何將自建Flink集群上的Datastream JAR作業(yè),遷移至實(shí)時(shí)計(jì)算Flink全托管的JAR作業(yè)類型中。
背景信息
本文介紹的遷移場(chǎng)景如下圖所示。
前提條件
- 本地已安裝Maven 3.x。
- 已在Maven資源中心下載了開(kāi)源JDBC Connector包,包括mysql-connector-java-8.0.27.jar和flink-connector-jdbc_2.11-1.13.0.jar。重要 依賴文件的版本需要與Flink集群的引擎版本保持一致。
- 已下載了代碼示例,下載的flink2vvp-main包中的文件說(shuō)明如下:
- Table/SQL類型:TableJobKafka2Rds.java
- Datastream類型:DataStreamJobKafka2Rds.java
- 已搭建好了基礎(chǔ)環(huán)境,詳情請(qǐng)參見(jiàn)搭建基礎(chǔ)環(huán)境。
- 已構(gòu)建自建集群測(cè)試作業(yè)并跑通。詳情請(qǐng)參見(jiàn)構(gòu)建自建集群測(cè)試作業(yè)。說(shuō)明 本文使用EMR-Flink作為用戶自建Flink集群來(lái)運(yùn)行遷移前的作業(yè),以此來(lái)對(duì)比驗(yàn)證自建Flink遷移后的作業(yè)運(yùn)行結(jié)果。如果您已經(jīng)有了自建Flink集群,可以忽略此步驟。
自建Flink遷移Flink全托管
- 在RDS控制臺(tái),創(chuàng)建自建集群的sink表rds_old_table1。
- 在Maven中修改以下配置信息并打包。
- 在Flink全托管開(kāi)發(fā)控制臺(tái)上,新建Flink JAR流作業(yè)。
- 在高級(jí)配置頁(yè)簽,配置JM和TM的資源量。
- 單擊保存。
- 在頁(yè)面右上角,單擊上線,將作業(yè)提交至集群。
- 在作業(yè)運(yùn)維頁(yè)面,單擊啟動(dòng)。如果作業(yè)的狀態(tài)變?yōu)?span id="z68uejxpaoma" class="ph uicontrol" data-tag="uicontrol" id="uicontrol-m33-1el-aym">運(yùn)行中,則表示作業(yè)已正常運(yùn)行。
- 在RDS控制臺(tái)上,雙擊rds_new_table3表后,單擊執(zhí)行(F8),查詢對(duì)應(yīng)的計(jì)算結(jié)果。說(shuō)明 如果上游Kafka有持續(xù)的流數(shù)據(jù),則5分鐘后即可到RDS控制臺(tái)上查詢到對(duì)應(yīng)的計(jì)算結(jié)果。
構(gòu)建自建集群測(cè)試作業(yè)
說(shuō)明 本文使用EMR-Flink作為用戶自建Flink集群來(lái)運(yùn)行遷移前的作業(yè),以此來(lái)對(duì)比驗(yàn)證自建Flink遷移后的作業(yè)運(yùn)行結(jié)果。如果您已經(jīng)有了自建Flink集群,可以忽略此步驟。
- 登錄RDS數(shù)據(jù)庫(kù)創(chuàng)建自建集群的sink表rds_old_table3。
- 在Maven中修改以下配置信息并打包。
- 拷貝新構(gòu)建的JAR包到自建EMR-Flink集群。
- 連接EMR-Flink集群后,執(zhí)行以下命令運(yùn)行Flink作業(yè)。連接方式詳情請(qǐng)參見(jiàn) 連接方式概述 ECS遠(yuǎn)程連接操作指南 。
cd / flink run -d -t yarn-per-job -p 2 -ynm 'tablejobkafka2rds' -yjm 1024m -ytm 2048m -yD yarn.appmaster.vcores=1 -yD yarn.containers.vcores=1 -yD state.checkpoints.dir=hdfs:///flink/flink-checkpoints -yD execution.checkpointing.interval="180s" -c com.alibaba.realtimecompute.TableJobKafka2Rds ./flink2vvp-1.0-SNAPSHOT.jar
- 在DMS控制臺(tái),查看寫(xiě)入RDS的結(jié)果。
由上圖可見(jiàn),自建Flink作業(yè)正常消費(fèi)Kafka數(shù)據(jù)并成功寫(xiě)入RDS結(jié)果表。