Flink on Yarn + Dinky + Dolphinscheduler系列二

本篇上接系列一,在部署好的环境下,使用Dinky运行Flink on Yarn(application)任务

1.启动Dinky

点击查看代码
cd /home/app/dlink-release-0.7.3
#启动
sh auto.sh start

2.查看hdfs的web ui界面

默认hadoop安装后web ui端口是ip:50070
image
如果访问不到,确认防火墙等信息,如果依然访问不到, 检查hdfs-site.xml是否配置了dfs.namenode.http-address属性,如果没有,请添加

3.在hdfs下创建/flink1.17/lib、/flink1.17/savepoints 两个路径

点击查看代码
hdfs dfs -mkdir -p /flink1.17/lib
hdfs dfs -mkdir -p /flink1.17/savepoints

顺利的话,可以到hdfs web ui 界面查看到如下图
image

4.上传依赖包

将flink依赖包上传到hdfs的/flink1.17下,同时将依赖包传到Dinky对应路径下一份

点击查看代码
cd /home/app/flink-1.17.1/lib
# 上传至hdfs
hdfs dfs -put ./* /flink1.17/lib/
#上传至Dinky
cp ./* /home/app/dlink-release-0.7.3/plugins/flink1.17/

我本地测试需要的包如下图,可以依据自己情况进行调整
image

5.上传运行应用Jar包

将之后提交Yarn的jar包,上传到hdfs,对应的jar包位置在/home/app/dlink-release-0.7.3/jar

点击查看代码
cd /home/app/dlink-release-0.7.3/jar/
hdfs dfs -put ./dlink-app-1.17-0.7.3-jar-with-dependencies.jar /flink1.17/

如下图上传成功
image

6.配置Dinky flink集群

访问Dinky的集群管理界面,新增集群配置
image
参考上图,结合自己配置的路径进行调整,点击测试按钮,成功完成即可。

7.测试样例

本次测试样例中 source端为MySQL、sink端为Doris

点击查看代码
# Doris 中的DWD_INCOME模型建表语句如下

CREATE TABLE DWD_INCOME
(
    ID                VARCHAR(36)                          COMMENT "主键",
    YEAR_ID           VARCHAR(10)                  COMMENT "数据年度",
    QUARTER_ID        VARCHAR(32)                      COMMENT "数据季度",
    YMONTH_ID         VARCHAR(10)                  COMMENT "数据月份",
    DAY_ID            VARCHAR(10)                  COMMENT "数据日期",
    CODE              VARCHAR(100)                  COMMENT "编码",
    INCOME            DECIMALV3(18,4)                 COMMENT "收入",
    BUSINESS_DATE     VARCHAR(32)                COMMENT "业务时间",
    DATA_TIME         DATETIME    DEFAULT CURRENT_TIMESTAMP     COMMENT "入库时间",
    DATA_SOURCE_TYPE  VARCHAR(10)                 COMMENT "数据来源"
)
UNIQUE KEY(ID)
DISTRIBUTED BY HASH(ID) BUCKETS 10
PROPERTIES (
    "replication_num" = "1",
    "enable_unique_key_merge_on_write" = "true"
);

MySQL中的ODS_INCOME模型如下图
image

8.维护Dinky注册中心

image
image

9.Dinky数据开发

image

点击查看代码
SET execution.checkpointing.interval = 60000;
SET execution.checkpointing.externalized-checkpoint-retention = RETAIN_ON_CANCELLATION;

CREATE TABLE ODS_INCOME (
  ID              INT,
  CODE            STRING,
  INCOME          STRING,
  BUSINESS_DATE   STRING,
  PRIMARY KEY (ID) NOT ENFORCED
) WITH (
  'connector' = 'mysql-cdc',
  'hostname' = '192.168.0.21',
  'port' = '3306',
  'username' = 'root',
  'password' = '123456',
  'database-name' = 'ods',
  'table-name' = 'ODS_INCOME',
  'scan.startup.mode' = 'initial'
);
CREATE TABLE DWD_INCOME (
  ID                  STRING,
  YEAR_ID             STRING,
  QUARTER_ID          STRING,
  YMONTH_ID           STRING,
  DAY_ID              STRING,
  CODE                STRING,
  INCOME              DECIMAL,
  BUSINESS_DATE       STRING,
  DATA_SOURCE_TYPE    STRING
) WITH (
  'connector' = 'doris',
  'fenodes' = '192.168.0.18:8030',
  'table.identifier' = 'DB_TEST.DWD_INCOME',
  'username' = 'root',
  'password' = '',
  'sink.label-prefix' = 'DWD25'
);
INSERT INTO DWD_INCOME
SELECT
  CAST(ID AS STRING),
  SUBSTR(BUSINESS_DATE, 04AS YEAR_ID,
  SUBSTR(BUSINESS_DATE, 04AS QUARTER_ID,
  SUBSTR(BUSINESS_DATE, 06AS YMONTH_ID,
  SUBSTR(BUSINESS_DATE, 08AS DAY_ID,
  CODE,
  CAST(INCOME AS DECIMAL),
  BUSINESS_DATE,
  '0' AS DATA_SOURCE_TYPE
FROM ODS_INCOME

flink集群选择之前配置好的 yarn集群
image
image

开发好FlinkSQL之后保存,检查,上图通过检查。提交作业到集群之后,查看
image
发现如下类似错误
image
出现上面的问题解决方案是,删除掉/home/app/dlink-release-0.7.3/plugins下除了对应的flink版本的文件夹,只留下对应版本的文件夹即可
image
如果作业提交成功,出现如下页面
image

10.访问hadoop web ui

可以访问hadoop web ui界面查看http://192.168.0.21:8088/cluster,如下图
image
点击ApplicationMaster,可以跳转Flink的Dashboard界面,如下图则提交作业成功运行
image
至此,基于Dinky进行提交Flink on Yarn(application)任务 成功。
未完待续,如有问题 欢迎指正

posted @   unstoppable961  阅读(1273)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示