Flink Kubernates Native - 入门
创建 namespace
[root@CentOSA flink-1.17.1]# kubectl create ns flink-native
[root@CentOSA flink-1.17.1]# kubectl config set-context --current --namespace=flink-native
命令空间添加资源限制
[root@CentOSA flink-1.17.1]# vim namespace-ResourceQuota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:name: mem-cpu-quotanamespace: flink-native
spec:hard:requests.cpu: "10"requests.memory: 10Gilimits.cpu: "10"limits.memory: 10Gi
[root@CentOSA flink-1.17.1]# kubectl apply -f namespace-ResourceQuota.yaml
创建用户并赋权
[root@CentOSA flink-1.17.1]# kubectl create serviceaccount ric
[root@CentOSA flink-1.17.1]# kubectl create clusterrolebinding flink-role-binding-flink --clusterrole=edit --serviceaccount=flink-native:ric --namespace=flink-native
- 提前在所有的flnk节点拉取flink镜像
[root@CentOSA flink-1.17.1]# docker pull apache/flink:1.17.1-scala_2.12
[root@CentOSA flink-1.17.1]# docker pull flink:1.17.1-scala_2.12
SessionMode
创建Flink 会话
./bin/kubernetes-session.sh \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.cluster-id=session001 \-Dtaskmanager.memory.process.size=1024m \-Dkubernetes.taskmanager.cpu=1 \-Dtaskmanager.numberOfTaskSlots=4 \-Dresourcemanager.taskmanager-timeout=3600000 \-Dkubernetes.rest-service.exposed.type=NodePort \-Dkubernetes.container.image.ref=flink:1.17.1-scala_2.12
2023-08-28 15:50:06,802 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: taskmanager.memory.process.size, 1728m
2023-08-28 15:50:06,805 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: jobmanager.bind-host, localhost
2023-08-28 15:50:06,805 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: taskmanager.bind-host, localhost
2023-08-28 15:50:06,805 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: taskmanager.host, localhost
2023-08-28 15:50:06,805 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: parallelism.default, 1
2023-08-28 15:50:06,805 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: jobmanager.execution.failover-strategy, region
2023-08-28 15:50:06,805 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: jobmanager.rpc.address, localhost
2023-08-28 15:50:06,806 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: taskmanager.numberOfTaskSlots, 1
2023-08-28 15:50:06,806 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: rest.address, localhost
2023-08-28 15:50:06,806 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: jobmanager.memory.process.size, 1600m
2023-08-28 15:50:06,806 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: jobmanager.rpc.port, 6123
2023-08-28 15:50:06,806 INFO org.apache.flink.configuration.GlobalConfiguration [] - Loading configuration property: rest.bind-address, localhost
2023-08-28 15:50:06,900 INFO org.apache.flink.client.deployment.DefaultClusterClientServiceLoader [] - Could not load factory due to missing dependencies.
2023-08-28 15:50:08,271 INFO org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction jvm overhead memory (160.000mb (167772162 bytes)) is less than its min value 192.000mb (201326592 bytes), min value will be used instead
2023-08-28 15:50:08,291 INFO org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction jvm overhead memory (102.400mb (107374184 bytes)) is less than its min value 192.000mb (201326592 bytes), min value will be used instead
2023-08-28 15:50:08,292 INFO org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction network memory (57.600mb (60397978 bytes)) is less than its min value 64.000mb (67108864 bytes), min value will be used instead
2023-08-28 15:50:08,498 INFO org.apache.flink.kubernetes.utils.KubernetesUtils [] - Kubernetes deployment requires a fixed port. Configuration blob.server.port will be set to 6124
2023-08-28 15:50:08,498 INFO org.apache.flink.kubernetes.utils.KubernetesUtils [] - Kubernetes deployment requires a fixed port. Configuration taskmanager.rpc.port will be set to 6122
2023-08-28 15:50:09,989 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Create flink session cluster session001 successfully, JobManager Web Interface: http://192.168.42.130:32432
可以根据提示信息访问JobManager Web Interface: http://192.168.42.130:32432页面

提交任务到指定会话
运行flink session任务
./bin/flink run \--target kubernetes-session \-Dkubernetes.cluster-id=session001 \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.rest-service.exposed.type=NodePort \./examples/streaming/TopSpeedWindowing.jar
Use --input to specify file input.
Printing result to stdout. Use --output to specify output path.
2023-08-28 15:54:02,974 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Retrieve flink cluster session001 successfully, JobManager Web Interface: http://192.168.42.130:32432
Job has been submitted with JobID 465dd11e73b5c9ac49c8e2945bf862b2

查看任务列表
./bin/flink list \--target kubernetes-session \-Dkubernetes.cluster-id=session001 \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.rest-service.exposed.type=NodePort \
2023-08-28 15:57:33,654 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Retrieve flink cluster session001 successfully, JobManager Web Interface: http://192.168.42.130:32432
Waiting for response...
------------------ Running/Restarting Jobs -------------------
28.08.2023 15:54:03 : 465dd11e73b5c9ac49c8e2945bf862b2 : CarTopSpeedWindowingExample (RUNNING)
--------------------------------------------------------------
No scheduled jobs.
取消任务:
./bin/flink cancel \--target kubernetes-session \-Dkubernetes.cluster-id=session002 \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.rest-service.exposed.type=NodePort \465dd11e73b5c9ac49c8e2945bf862b2
Cancelling job 465dd11e73b5c9ac49c8e2945bf862b2.
2023-08-28 16:02:43,209 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Retrieve flink cluster session001 successfully, JobManager Web Interface: http://192.168.42.130:32432
Cancelled job 465dd11e73b5c9ac49c8e2945bf862b2.
删除session作业:
[root@CentOSA flink-1.17.1]# kubectl delete deployment session001 -n flink-native
deployment.apps "session001" deleted
Application Model
构建docker镜像
1、编写DockerFile
[root@CentOSA flink-1.17.1] cd /export/server/app-mode
[root@CentOSA app-mode] vi Dockerfile
FROM flink
RUN mkdir -p $FLINK_HOME/usrlib
COPY TopSpeedWindowing.jar $FLINK_HOME/usrlib/TopSpeedWindowing.jar
2、构建镜像文件
[root@CentOSC app-mode]# docker build -t my-flink-job:1.0 ./
[+] Building 0.6s (8/8) FINISHED docker:default=> [internal] load .dockerignore 0.1s=> => transferring context: 2B 0.0s=> [internal] load build definition from Dockerfile 0.1s=> => transferring dockerfile: 271B 0.0s=> [internal] load metadata for docker.io/library/flink:1.17.1-scala_2.12 0.0s=> [1/3] FROM docker.io/library/flink:1.17.1-scala_2.12 0.1s=> [internal] load build context 0.0s=> => transferring context: 17.04kB 0.0s=> [2/3] RUN mkdir -p /opt/flink/usrlib 0.3s=> [3/3] COPY TopSpeedWindowing.jar /opt/flink/usrlib/TopSpeedWindowing.jar 0.0s=> exporting to image 0.0s=> => exporting layers 0.0s=> => writing image sha256:a017db16aaa8086045dc1b28315e6e2fe47113aa41e1a0f547b58c1b191dac4a 0.0s=> => naming to docker.io/library/my-flink-job:1.0 0.0s
[root@CentOSC appMode]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-flink-job 1.0 a017db16aaa8 About a minute ago 782MB
flannel/flannel v0.22.2 d73868a08083 10 days ago 70.2MB
flink 1.17.1-scala_2.12 efd18635797b 11 days ago 782MB
flannel/flannel-cni-plugin v1.2.0 a55d1bad692b 5 weeks ago 8.04MB
apache/flink 1.17.1-scala_2.12 fef5f770f8b3 3 months ago 780MB
registry.aliyuncs.com/google_containers/kube-proxy v1.20.5 5384b1650507 2 years ago 118MB
registry.aliyuncs.com/google_containers/pause 3.2 80d28bedfe5d 3 years ago 683kB
启动任务
./bin/flink run-application \--target kubernetes-application \-Dkubernetes.cluster-id=my-first-application-cluster \-Dkubernetes.container.image=my-flink-job:1.0 \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.rest-service.exposed.type=NodePort \local:/opt/flink/usrlib/TopSpeedWindowing.jar
2023-08-28 16:07:45,180 INFO org.apache.flink.kubernetes.utils.KubernetesUtils [] - Kubernetes deployment requires a fixed port. Configuration blob.server.port will be set to 6124
2023-08-28 16:07:45,181 INFO org.apache.flink.kubernetes.utils.KubernetesUtils [] - Kubernetes deployment requires a fixed port. Configuration taskmanager.rpc.port will be set to 6122
2023-08-28 16:07:46,742 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Create flink application cluster my-first-application-cluster successfully, JobManager Web Interface: http://192.168.42.130:32003

查看任务列表
./bin/flink list \--target kubernetes-application \-Dkubernetes.cluster-id=my-first-application-cluster \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.rest-service.exposed.type=NodePort
2023-08-28 16:10:00,093 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Retrieve flink cluster my-first-application-cluster successfully, JobManager Web Interface: http://192.168.42.130:32003
Waiting for response...
------------------ Running/Restarting Jobs -------------------
28.08.2023 16:07:59 : c9ec57a2003a808ef5df04219fc7aacb : CarTopSpeedWindowingExample (RUNNING)
--------------------------------------------------------------
No scheduled jobs.
删除任务
./bin/flink cancel \--target kubernetes-application \-Dkubernetes.cluster-id=my-first-application-cluster \-Dkubernetes.namespace=flink-native \-Dkubernetes.jobmanager.service-account=ric \-Dkubernetes.rest-service.exposed.type=NodePort \c9ec57a2003a808ef5df04219fc7aacb
2023-08-28 16:11:16,963 INFO org.apache.flink.kubernetes.KubernetesClusterDescriptor [] - Retrieve flink cluster my-first-application-cluster successfully, JobManager Web Interface: http://192.168.42.130:32003
Cancelled job c9ec57a2003a808ef5df04219fc7aacb.
相关文章:
Flink Kubernates Native - 入门
创建 namespace [rootCentOSA flink-1.17.1]# kubectl create ns flink-native [rootCentOSA flink-1.17.1]# kubectl config set-context --current --namespaceflink-native命令空间添加资源限制 [rootCentOSA flink-1.17.1]# vim namespace-ResourceQuota.yamlapiVersion:…...
Ceph入门到精通-大流量10GB/s支持OSPF(ECMP)-LVS 集群
Keepalived-LVS 能够提高集群的高可用性并增加后端检测功能、简化配置,满足常规需求。但Keepalived-LVS集群中,同一个VIP只能由一台设备进行宣告,为一主多备的架构,不能横向拓展集群的性能,为此我们引入OSPF来解决该问…...
IDEA、git如何修改历史提交commit的邮箱
第一种情况:当前提交不是从其他分支clone过来的: step1: git log 查看提交日志,获取commit ID step2: git rebase -i [你的commitID] git rebase -i c2ef237854290051bdcdb50ffbdbb78481d254bb step3:…...
字符设备驱动(内核态用户态内存交互)
前言 内核驱动:运行在内核态的动态模块,遵循内核模块框架接口,更倾向于插件。 应用程序:运行在用户态的进程。 应用程序与内核驱动交互通过既定接口,内核态和用户态访问依然遵循内核既定接口。 环境搭建 系统&#…...
Qt基础 线程池
目录 QThreadPool类 QRunnable类 应用场景示例 QThreadPool类 主要属性: 1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。 2、expiryTimeout: 线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出&am…...
Django(8)-静态资源引用CSS和图片
除了服务端生成的 HTML 以外,网络应用通常需要一些额外的文件——比如图片,脚本和样式表——来帮助渲染网络页面。在 Django 中,我们把这些文件统称为“静态文件”。 我们使用static文件来存放静态资源,django会在每个 INSTALLED…...
C++ list模拟实现
list模拟实现代码: namespace djx {template<class T>struct list_node{T _data;list_node<T>* _prev;list_node<T>* _next;list_node(const T& x T()):_data(x),_prev(nullptr),_next(nullptr){}};template<class T,class Ref,class Pt…...
中国建筑出版传媒许少辉博士八一新书乡村振兴战略下传统村落文化旅游设计日京东当当畅销榜自由营九三学
中国建筑出版传媒许少辉博士八一新书乡村振兴战略下传统村落文化旅游设计日京东当当畅销榜自由营九三学...
C语言(第三十二天)
1. 递归是什么? 递归是学习C语言函数绕不开的一个话题,那什么是递归呢? 递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。 写一个史上最简单的C语言递归代码: #include <stdio.h>…...
arcgis+postgresql+postgis使用介绍
关于arcgis在postgresql创建地理数据库我分享一下自己的经历: 众所周知,arcgis如果在oracle中创建地理数据库,必须要使用ArcToolbox里面的地理数据库工具去创建,在里面发现它还可以创建sql_server, postgresql数据库类型…...
机器视觉之开运算和闭运算
开运算(Opening)和闭运算(Closing)是数学形态学中常用的图像处理操作,通常用于去除图像中的噪声、连接物体、分离物体等操作。它们分别由两个基本操作组成:腐蚀(Erosion)和膨胀&…...
【python爬虫】—URL管理器的实现
python爬虫-url管理器 url管理器的作用python实现 url管理器的作用 在Python爬虫中,URL管理器(URL Manager)是一个重要的组件,用于有效管理爬取过程中所涉及的URL。它主要负责以下几个方面的任务: URL去重(…...
Oracle 19C RAC安装PSU oui-patch.xml权限错误
Oracle 19C RAC安装PSU时,节点2安装失败,经排查错误原因为oui-patch.xml文件权限错误。 Oracle官方建议oui-patch.xml文件权限,改成660或者666: chmod 660 oui-patch.xml权限修改完成后,安装psu还是失败,…...
华为数通方向HCIP-DataCom H12-821题库(单选题:161-180)
第161题 以下关于 URPF(Unicast Reverse Path Forwarding) 的描述, 正确的是哪一项 A、部署了严格模式的 URPF,也能够可以同时部署允许匹配缺省路由模式 B、如果部署松散模式的 URPF,默认情况下不需要匹配明细路由 C、如果部署松散模式的…...
ResNet详解:网络结构解读与PyTorch实现教程
目录 一、深度残差网络(Deep Residual Networks)简介深度学习与网络深度的挑战残差学习的提出为什么ResNet有效? 二、深度学习与梯度消失问题梯度消失问题定义为什么会出现梯度消失?激活函数初始化方法网络深度 如何解决梯度消失问…...
ChatGPT 随机动态可视化图表分析
动态可视化图表分析实例如下图: 这样的动态可视化图表可以使用ChatGPT OpenAI 来实现。 给ChatGPT发送指令: 你现在是一个数据分析师,请使用HTML,JS,Echarts,来完成一个动态条形图,条形图方向横向,数据可以随机生成,并且随机生成10个不同的商品名称,每个类别分别用…...
国标视频融合云平台EasyCVR视频汇聚平台的应用场景及其功能说明
一、平台简介 EasyCVR国标视频融合云平台是一款基于端-边-云一体化架构的视频融合AI智能分析网关平台。EasyCVR平台支持视频汇聚、融合管理,兼容多类型设备、多协议接入。其提供的视频功能包括:视频监控、无插件直播录像、云存储、检索回放、智能告警、…...
后端面试话术集锦第三篇:spring cloud 面试话术
🚗后端面试集锦目录 💖后端面试话术集锦第 1 篇:spring面试话术💖 💖后端面试话术集锦第 2 篇:spring boot面试话术💖 💖后端面试话术集锦第 3 篇:spring cloud面试话术💖 💖后端面试话术集锦第 4 篇:ElasticSearch面试话术💖 💖后端面试话术集锦第 5 …...
React 18 选择 State 结构
参考文章 选择 State 结构 构建良好的 state 可以让组件变得易于修改和调试,而不会经常出错。以下是在构建 state 时应该考虑的一些建议。 构建 state 的原则 当编写一个存有 state 的组件时,需要选择使用多少个 state 变量以及它们都是怎样的数据格…...
LNMT与动静分离
目录 一、LNMT 一、部署tomcat 二、部署nginx 三、部署mariadb 四、配置nginx 二、操作流程及步骤 一、在第一台机器上进入 vim /etc/nginx/nginx.conf 更改配置文件 二、并查看端口是否成功启动 三、验证 四、再次来到网页验证 五、动静分离(修改配置…...
音乐版权侵权避坑指南:明星翻唱踩的红线,这些行为也在踩
短视频/直播/门店公播全场景合规方案 正版商用音乐授权平台推荐央广网北京3月30日消息(记者费权)近日,歌手单依纯在深圳演唱会上未经授权演唱李荣浩原创作品《李白》,而此前李荣浩方已明确婉拒其版权授权申请,中国音乐…...
大厂疯抢!AI Agent开发岗要求速览+进阶学习路线图,速收藏!
文章分析了大厂AI Agent开发岗位的核心要求,包括扎实的后端开发基础、AI知识储备、主流框架掌握等。文章强调AI应用开发与后端开发并非对立,而是相辅相成,并提供了详细的学习路线图,涵盖基础阶段、AI知识入门、实践项目、深化与拓…...
DeerFlow免费开源:字节跳动出品,个人研究者的强大AI工具
DeerFlow免费开源:字节跳动出品,个人研究者的强大AI工具 1. 项目概述 DeerFlow是由字节跳动公司开源的一款深度研究辅助工具,基于LangStack技术框架开发。这个项目通过整合语言模型、网络搜索和Python代码执行等能力,为个人研究…...
数字斯德哥尔摩:用户爱上折磨人的bug
在软件测试领域,我们经常面对一个悖论:用户有时会对那些反复出现、折磨人的bug产生一种依赖甚至“爱”的情感,这种现象被称为“数字斯德哥尔摩综合征”。它源于心理学中的斯德哥尔摩综合征——人质对劫持者产生情感依赖——在数字世界中&…...
Ostrakon-VL像素UI设计细节:16色限定调色板与可访问性对比度达标
Ostrakon-VL像素UI设计细节:16色限定调色板与可访问性对比度达标 1. 项目背景与设计理念 1.1 从工业UI到像素艺术的转变 在零售与餐饮行业的AI应用场景中,传统工业级UI往往给人冰冷、复杂的印象。Ostrakon-VL扫描终端大胆采用8-bit复古像素风格&#…...
BT33F双基二极管的基本特性
简 介: 本文测试了BT33F双基二极管的特性,发现其发射极对两个基极呈现不同导通电压(0.86V和1.6V),B1、B2间电阻约13KΩ。实验表明,只有当B1接地、B2接5V电源时,电路才能产生46Hz的振荡信号&…...
别再硬编码了!用注解+工厂模式,5分钟为你的Java应用扩展一个新PLC协议(ModbusTCP/S7为例)
工业物联网中Java协议扩展的优雅实践:注解驱动与工厂模式深度整合 工业物联网(IIoT)平台的开发者们经常面临一个棘手问题:如何在不重构核心代码的情况下,快速接入各种PLC设备协议?想象一下这样的场景:你的系统已经稳定…...
从无人机到扫地机器人:拆解VIO技术如何成为智能设备的‘隐形大脑’
从无人机到扫地机器人:拆解VIO技术如何成为智能设备的‘隐形大脑’ 当科沃斯T20扫地机器人在复杂家居环境中精准避开宠物食盆时,当大疆Mavic 3无人机在峡谷间自主返航时,背后都隐藏着一项关键技术——视觉惯性里程计(VIOÿ…...
VSCode本地历史记录插件Local History保姆级教程:从安装到.gitignore配置
VSCode本地历史记录插件Local History深度指南:从高效使用到项目集成 为什么开发者需要本地历史记录功能 在日常开发中,我们经常会遇到这样的场景:修改了一段代码后突然意识到之前的版本可能更好,或者不小心覆盖了重要内容却无法撤…...
FPGA实战:手把手教你用Verilog实现以太网PHY芯片MDIO寄存器读写(附完整代码)
FPGA实战:手把手教你用Verilog实现以太网PHY芯片MDIO寄存器读写 在当今高速网络设备开发中,FPGA与以太网PHY芯片的协同工作已成为工业级设计的标配。MDIO(Management Data Input/Output)接口作为IEEE 802.3标准定义的两线制串行总…...
