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
如果访问不到,确认防火墙等信息,如果依然访问不到, 检查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 界面查看到如下图
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/
我本地测试需要的包如下图,可以依据自己情况进行调整
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/
如下图上传成功
6.配置Dinky flink集群
访问Dinky的集群管理界面,新增集群配置
参考上图,结合自己配置的路径进行调整,点击测试按钮,成功完成即可。
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模型如下图
8.维护Dinky注册中心
9.Dinky数据开发
点击查看代码
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, 0, 4) AS YEAR_ID,
SUBSTR(BUSINESS_DATE, 0, 4) AS QUARTER_ID,
SUBSTR(BUSINESS_DATE, 0, 6) AS YMONTH_ID,
SUBSTR(BUSINESS_DATE, 0, 8) AS DAY_ID,
CODE,
CAST(INCOME AS DECIMAL),
BUSINESS_DATE,
'0' AS DATA_SOURCE_TYPE
FROM ODS_INCOME
flink集群选择之前配置好的 yarn集群
开发好FlinkSQL之后保存,检查,上图通过检查。提交作业到集群之后,查看
发现如下类似错误
出现上面的问题解决方案是,删除掉/home/app/dlink-release-0.7.3/plugins下除了对应的flink版本的文件夹,只留下对应版本的文件夹即可
如果作业提交成功,出现如下页面
10.访问hadoop web ui
可以访问hadoop web ui界面查看http://192.168.0.21:8088/cluster,如下图
点击ApplicationMaster,可以跳转Flink的Dashboard界面,如下图则提交作业成功运行
至此,基于Dinky进行提交Flink on Yarn(application)任务 成功。
未完待续,如有问题 欢迎指正
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)