使用Dinky快速提交Flink operator任务

官网地址:K8s集成 | Dinky

1.目前使用版本

Dinky1.2.0、Flink1.18.1、Flink operator0.10.0

2.制作镜像

2.1创建DockerFile

ARG FLINK_VERSION=1.18.1
FROM flink:${FLINK_VERSION}-scala_2.12
RUN mkdir -p /opt/flink/usrlib
COPY   commons-cli-1.3.1.jar                            /opt/flink/lib/
COPY   dinky-app-1.18-1.2.0-jar-with-dependencies.jar   /opt/flink/usrlib/
COPY   flink-metrics-prometheus-1.18.1.jar              /opt/flink/lib/
COPY   flink-table-planner_2.12-1.18.1.jar              /opt/flink/lib/
COPY   mysql-connector-java-8.0.30.jar                  /opt/flink/lib/
COPY   flink-shaded-hadoop-3-uber-3.1.1.7.2.1.0-327-9.0.jar /opt/flink/lib/
COPY   commons-math3-3.6.1.jar   /opt/flink/lib/
RUN rm -rf ${FLINK_HOME}/lib/flink-table-planner-loader-*.jar

2.2 构建镜像并推送到私有镜像仓库

docker build -t dinky-flink:1.18.1   . --no-cache
docker tag dinky-flink:1.18.1 registry.cn-hangzhou.aliyuncs.com/dinkyhub/dinky-flink:1.18.1
docker push  registry.cn-hangzhou.aliyuncs.com/dinkyhub/dinky-flink:1.18.1

2.3创建serviceaccount等

kubectl create namespace  flink-apps
kubectl -n flink-apps create serviceaccount flink-serviceaccount
kubectl -n flink-apps create clusterrolebinding flink-role-binding --clusterrole=cluster-admin --serviceaccount=flink-apps:flink-serviceaccount
--这里注意--clusterrole=cluster-admin 权限级别较高 默认edit即可。kubectl create secret docker-registry flink-apps-secret \
--docker-server=registry.cn-hangzhou.aliyuncs.com \
--docker-username=xx \
--docker-password=xxxx \
-n flink-appskubectl patch serviceaccount flink-serviceaccount -p '{"imagePullSecrets": [{"name": "flink-apps-secret"}]}' -n  flink-apps

3.Dinky中配置

3.1页面上的配置

3.2 Flink sql任务

set 'taskmanager.numberOfTaskSlots' = '2';
set 'parallelism.default' = '2';
set 'kubernetes.container.image' = 'registry.cn-hangzhou.aliyuncs.com/dinkyhub/dinky-flink:1.18.1';
set 'kubernetes.service-account' = 'flink-serviceaccount';
set 'job.autoscaler.enabled' = 'true';
set 'job.autoscaler.metrics.window' = '20s';
set 'job.autoscaler.target.utilization' = '0.30';
set 'job.autoscaler.scale.up.threshold' = '0.05';
set 'job.autoscaler.scale.down.threshold' = '0.1';
set 'job.autoscaler.stabilization.interval' = '5s';
set 'job.autoscaler.cooldown.period' = '5s';
set 'job.autoscaler.scale.up.max.factor' = '1.5';
set 'job.autoscaler.scale.down.max.factor' = '0.5';set 'metrics.reporters' = 'prometheus';
set 'metrics.reporter.prometheus.factory.class' = 'org.apache.flink.metrics.prometheus.PrometheusReporterFactory';
set 'metrics.reporter.prometheus.port' = '9249';set 'jobmanager.scheduler' = 'adaptive';
set 'state.backend' = 'rocksdb';
set 'jobmanager.archive.fs.dir'='file:///tmp';
set 'state.checkpoints.dir' = 'file:///tmp/checkpoints';
set 'state.savepoints.dir' = 'file:///tmp/savepoints';
set 'execution.checkpointing.interval' = '10000';
set 'execution.checkpointing.mode' = 'EXACTLY_ONCE';
set 'execution.checkpointing.timeout' = '600000';
set 'execution.checkpointing.min.pause' = '10000';
set 'execution.checkpointing.max.concurrent.checkpoints' = '1';
set 'metrics.latency.granularity' = 'operator';
set 'web.backpressure.refresh-interval' = '1000';
set 'metrics.backpressure.enabled' = 'true';
set 'metrics.backpressure.interval' = '1000';
set 'metrics.backpressure.timeout' = '60000';
set 'kubernetes.service.exposed.type' = 'NodePort';
set 'kubernetes.rest-service.exposed.type' = 'NodePort';
set 'kubernetes.jobmanager.service-account' = 'flink-serviceaccount';--创建源表datagen_source
CREATE TABLE datagen_source
(id BIGINT,name STRING
)
WITH ( 'connector' = 'datagen');
--创建结果表blackhole_sink
CREATE TABLE blackhole_sink
(id BIGINT,name STRING
)
WITH ( 'connector' = 'blackhole');
--将源表数据插入到结果表
INSERT INTO blackhole_sink
SELECT id,name
from datagen_source;

3.3 Jar包任务

上传任务jar包复制地址。右键复制jar包地址。比如rs:/flink-test-1.0-SNAPSHOT.jar

 

set 'taskmanager.numberOfTaskSlots' = '2';
set 'parallelism.default' = '2';
set 'kubernetes.container.image' = 'registry.cn-hangzhou.aliyuncs.com/dinkyhub/dinky-flink:1.18.1';
set 'kubernetes.service-account' = 'flink-serviceaccount';set 'job.autoscaler.enabled' = 'true';
set 'job.autoscaler.metrics.window' = '20s';
set 'job.autoscaler.target.utilization' = '0.30';
set 'job.autoscaler.scale.up.threshold' = '0.05';
set 'job.autoscaler.scale.down.threshold' = '0.1';
set 'job.autoscaler.stabilization.interval' = '5s';
set 'job.autoscaler.cooldown.period' = '5s';
set 'job.autoscaler.scale.up.max.factor' = '1.5';
set 'job.autoscaler.scale.down.max.factor' = '0.5';set 'jobmanager.scheduler' = 'adaptive';
set 'metrics.reporters' = 'prometheus';
set 'metrics.reporter.prometheus.port' = '9249';
set 'metrics.reporter.prometheus.factory.class' = 'org.apache.flink.metrics.prometheus.PrometheusReporterFactory';set 'state.checkpoints.dir' = 'file:///tmp/checkpoints';
set 'state.savepoints.dir' = 'file:///tmp/savepoints';
set 'execution.checkpointing.interval' = '100000';
set 'execution.checkpointing.mode' = 'EXACTLY_ONCE';
set 'execution.checkpointing.timeout' = '600000';
set 'execution.checkpointing.min.pause' = '10000';
set 'execution.checkpointing.max.concurrent.checkpoints' = '1';-- REST service 配置
SET 'kubernetes.rest-service.exposed.type' = 'NodePort';

注意点:

1.修改这里的Dinky地址,不然会下载报错。

2.集群配置地址时。

local:///opt/flink/usrlib/dinky-app-1.18-1.2.0-jar-with-dependencies.jar
注意local后边是三个斜杠,少写一个会报错

3.数据库配置要写静态ip,别写127.0.0.1.不然会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/66306.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查找路由器的管理后台ip【通用找IP】

需求: 刚刚搞了个【小米】路由器,我想进路由的管理后台,提示:安装xx的路由管家,我不想安装 但是无法找到这个管理后台。 而且我是用这个路由作为中继,那么这个路由的ip就会经常更换 尝试通过网上搜索引擎来…

【大数据】(选修)实验4 安装熟悉HBase数据库并实践

实验4 安装熟悉HBase数据库并实践 1、实验目的 (1)理解HBase在Hadoop体系结构中的角色; (2)熟练使用HBase操作常用的Shell命令; (3)熟悉HBase操作常用的Java API。 2、实验平台 操作系统:Linux Hadoop版本:2.6.0或以上版本 HBase版本:1.1.2或以上版本 JDK版…

【通识安全】煤气中毒急救的处置

1.煤气中毒的主要症状与体征一氧化碳中毒,其中毒症状一般分为轻、中、重三种。 (1)轻度:仅有头晕、头痛、眼花、心慌、胸闷、恶心等症状。如迅速打开门窗,或将病人移出中毒环境,使之吸入新鲜空气和休息,给些热饮料&am…

【UI自动化测试】selenium八种定位方式

🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~ 👲个人简介:本人编程小白,正在学习互联网求职知识…… 如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论💬&am…

redis各种数据类型介绍

Redis 是一种高性能的键值存储数据库,它支持多种数据类型,使得开发者可以灵活地存储和操作数据。以下是 Redis 支持的主要数据类型及其介绍: 1. 字符串(String) 字符串是 Redis 中最基本的数据类型,它可以存…

【Linux】Linux命令

目录 ​编辑 系统维护命令 man man:查看 man 手册 sudo passwd 用户名:修改用户密码 su:切换用户 echo ”输出内容“:向终端输出内容,默认换行 date查看当前系统的日期 clear:清屏 df -Th /df -h&…

关机重启后,GitLab服务异常

整理机房,关闭了所有主机重新上架。 上架后开机,所有主机硬件启动正常。 其中一台GitLab服务器启动正常,使用gitlab-ctl status查看服务业正常。 但使用web登陆却失败,如下图: 反复测试,发现无论使用正确密码还是错误密码都是同样的提示。很大可能是数据库的问题。 使…

【嵌入式硬件】直流电机驱动相关

项目场景: 驱动履带车(双直流电机)前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案(这是修改之后的图) 原因分析: 1.主要原因是4路PWM没有限幅,修改…

Python编程实例-特征向量与特征值编程实现

特征向量与特征值编程实现 文章目录 特征向量与特征值编程实现1、什么是特征向量2、特征向量背后的直觉3、为什么特征向量很重要?4、如何计算特征向量?4、特征向量Python实现5、可视化特征向量6、总结线性代数是许多高级数学概念的基石,广泛应用于数据科学、机器学习、计算机…

基于Java的免税商品优选购物商城设计与实现源码(springboot+mybatis+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于Java的免税商品优选购物商城设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于Java的免税…

Docker安装(Docker Engine安装)

一、Docker Engine和Desktop区别 Docker Engine 核心组件:Docker Engine是Docker的核心运行时引擎,负责构建、运行和管理容器。它包括守护进程(dockerd)、API和命令行工具客户端(docker)。适用环境&#…

图片验证码

1.图片验证码意义 验证码可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。由于验证码技术具有随机性随机性较强、简单的特点,能够在一定程度上阻碍网络上恶意行为的访问&#xf…

CSS 学习之正确看待 CSS 世界里的 margin 合并

一、什么是 margin 合并 块级元素的上外边距(margin-top)与下外边距(margin-bottom)有时会合并为单个外边距,这样的现象称为“margin 合并”。从此定义上,我们可以捕获两点重要的信息。 块级元素,但不包括浮动和绝对定位元素,尽…

【git】git stash相关指令

目录 git stashgit stash save “”git stash list: 获取stash列表git stash pop:恢复最近一次stash缓存git stash apply stash{index}: 恢复指定缓存在这里插入图片描述git stash drop stash{1}:删除指定缓存 git stash clear :删除stash gi…

用公网服务代理到本地电脑笔记

参考: 利用frp 穿透到内网的http/https网站,实现对外开放(这篇博客有点老,需要改动,不能照抄):https://www.cnblogs.com/hahaha111122222/p/8509150.html frp内网穿透(windows和服务器)&#xf…

uni-app:实现普通选择器,时间选择器,日期选择器,多列选择器

效果 选择前效果 1、时间选择器 2、日期选择器 3、普通选择器 4、多列选择器 选择后效果 代码 <template><!-- 时间选择器 --><view class"line"><view classitem1><view classleft>时间</view><view class"right&quo…

GAN对抗生成网络(二)——算法及Python实现

1 算法步骤 上一篇提到的GAN的最优化问题是&#xff0c;本文记录如何求解这一问题。 首先为了表示方便&#xff0c;记&#xff0c;这里让最大的可视作常量。 第一步&#xff0c;给定初始的&#xff0c;使用梯度上升找到 ,最大化。关于梯度下降&#xff0c;可以参考笔者另一篇…

[读书日志]从零开始学习Chisel 第二篇:Scala的变量与函数(敏捷硬件开发语言Chisel与数字系统设计)

第一篇https://blog.csdn.net/m0_74021449/article/details/144887921 2.2 Scala的变量及函数 2.2.1变量定义与基本类型 变量声明 变量首次定义必须使用关键字var或者val&#xff0c;二者的区别是val修饰的变量禁止被重新赋值&#xff0c;它是一个只读的变量。首次定义变量时…

Spring Boot - 日志功能深度解析与实践指南

文章目录 概述1. Spring Boot 日志功能概述2. 默认日志框架&#xff1a;LogbackLogback 的核心组件Logback 的配置文件 3. 日志级别及其配置配置日志级别3.1 配置文件3.2 环境变量3.3 命令行参数 4. 日志格式自定义自定义日志格式 5. 日志文件输出6. 日志归档与清理7. 自定义日…

NVIDIA DLI课程《NVIDIA NIM入门》——学习笔记

先看老师给的资料&#xff1a; NVIDIA NIM是 NVIDIA AI Enterprise 的一部分&#xff0c;是一套易于使用的预构建容器工具&#xff0c;目的是帮助企业客户在云、数据中心和工作站上安全、可靠地部署高性能的 AI 模型推理。这些预构建的容器支持从开源社区模型到 NVIDIA AI 基础…