flink on k8s提交任务

news2024/11/26 8:58:15

目录

  • 相关文档
  • 前置准备
  • 构建镜像
  • 提交任务

相关文档

https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/deployment/resource-providers/native_kubernetes/

前置准备

flink的lib目录下放入两个依赖

bcpkix-jdk15on-1.68.jar

bcprov-jdk15on-1.69.jar

创建用户有RABC权限去执行创建pods

官网原文:https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/deployment/resource-providers/native_kubernetes/#rbac

k8s中每个命名空间都有一个默认服务帐户。但是,default 服务帐户可能没有在 Kubernetes 集群中创建或删除 Pod 的权限。用户可能需要更新 default 服务账号的权限或指定另一个绑定了正确角色的服务账号。

kubectl create clusterrolebinding flink-role-binding-default --clusterrole=edit --serviceaccount=default:default

如果不想使用 default 服务帐户,可以使用以下命令创建新的 flink-service-account 服务帐户并设置角色绑定。然后使用 config 选项 -Dkubernetes.service-account=flink-service-account 使 JobManager pod 使用 flink-service-account 服务帐户来创建/删除 TaskManager pod。

kubectl create serviceaccount flink-service-account
kubectl create clusterrolebinding flink-role-binding-flink --clusterrole=edit --serviceaccount=default:flink-service-account

构建镜像

这里使用 Application Mode 模式在生产环境可以为应用提供更好的隔离。flink on k8s 要求代码与 flink 镜像绑定在一起,Application Mode 确保在应用程序终止后正确清理所有 Flink 组件。

编写代码

public class K8sDemo {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);

        DataStreamSource<String> source = env.addSource(new SourceFunction<String>() {
            private volatile boolean isRunning = true;

            @Override
            public void run(SourceContext<String> ctx) throws Exception {
                while (isRunning) {
                    ctx.collect(UUID.randomUUID().toString());
                    TimeUnit.SECONDS.sleep(1);
                }
            }

            @Override
            public void cancel() {
                isRunning = false;
            }
        });

        source.print();

        env.execute();
    }
}

编写dockerfile

使用 flink 社区提供的基础 docker 镜像

FROM flink:1.13.6-scala_2.11-java8
RUN mkdir -p $FLINK_HOME/jobs
COPY k8s-demo-1.0-SNAPSHOT.jar $FLINK_HOME/jobs/flink-on-k8s.jar

image-20230425145303496

构建镜像

docker build -t flink-on-k8s-demo .

image-20230425145211047

提交任务

export一下k8s的KUBECONFIG

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

提交任务

bin/flink run-application \
--target kubernetes-application \
-Dkubernetes.cluster-id=my-first-application-cluster \
-Dkubernetes.service-account=flink-service-account \
-Dkubernetes.container.image=registry.cn-hangzhou.aliyuncs.com/czs-projects/flink-on-k8s-demo:v1.0 \
local:///opt/flink/jobs/k8s-demo-1.0-SNAPSHOT.jar

其中,根据RABC权限,启动失败要加上指定参数,否则可不加

-Dkubernetes.cluster-id=my-first-flink-cluster 
-Dkubernetes.service-account=flink-service-account 

报错To use support for EC Keys you must explicitly add this dependency to classpath将jar包加入flink client的目录下

image-20230425150044132

之后执行成功日志

image-20230425150506117

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

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

相关文章

Vue过滤器的基本使用

过滤器 功能&#xff1a;对要显示的数据进行特定格式化后再显示 注意&#xff1a;并没有改变原本的数据&#xff0c;是产生新的对应的数据 声明&#xff1a;过滤器不是必须要用到的东西&#xff0c;而是vue提供处理数据的方式而已&#xff0c;想用就用&#xff0c;不想用可以…

Elasticsearch 实战篇 | 黑马旅游

一、酒店搜索和分页 需求&#xff1a;实现黑马旅游的酒店搜索功能&#xff0c;完成关键字搜索和分页 1、定义实体类&#xff0c;接收前端的参数 如果当搜索条件为空的时候&#xff0c;就返回全部数据&#xff0c;不为空才按照key来搜索 二、条件过滤 修改实体类&#xff0c;…

边缘计算开源项目解读-kubeedge metamanager实现

0 背景 笔者在前面的几篇文章从设备管理和运维的角度解读了kubeedge的相关代码流程和架构。本文将切入kubeedge edgecore的另一个核心业务&#xff0c;即边云协同处理设备元数据相关代码的解读。如果说前面的设备管理和运维并不能体现kubeedge作为边缘计算数据处理平台的特点&a…

【Andoroid】之【APK瘦身】

一、如何查看 APK 的组成 如果要优化 APK 的大小&#xff0c;我们首先需要知道我们编译出来的 APK 都包含哪些东西&#xff0c;然后针对占用大的做裁剪&#xff0c;或者删除不需要的东西&#xff0c;从而达到瘦身的目的。 查看 APK 的内容占用情况很简单&#xff0c;打开 AS …

进程间通信,有名管道(pipe)与无名管道(fifo)的解析与运用,以及代码实现

&#x1f38a;【进程通信与并发】专题正在持续更新中&#xff0c;进程&#xff0c;线程&#xff0c;IPC&#xff0c;线程池等的创建原理与运用✨&#xff0c;欢迎大家前往订阅本专题&#xff0c;获取更多详细信息哦&#x1f38f;&#x1f38f;&#x1f38f; &#x1fa94;本系列…

API网关:开源Apinto网关-应用管理篇

需求痛点 在这互联网高速发展的时代&#xff0c;企业业务系统多、渠道广&#xff0c;如何管理内外部调用端系统具有极大的挑战。 数量方面&#xff1a;API网关需要对各端应用统一管理&#xff0c;例如对企业自身很多的前端应用&#xff0c;包括不限于web应用、移动APP、小程序&…

AI边缘计算智能分析网关灭火器缺失检测与告警的实现过程

AI智能分析网关基于边缘智能&#xff0c;部署了多种AI深度学习算法&#xff0c;可对接入的多路视频流进行智能检测、智能识别等&#xff0c;包括人脸检测与识别、车辆检测与识别、车牌识别、烟火识别、安全帽识别、区域入侵检测等。今天我们来介绍下关于灭火器缺失检测与告警的…

基于Yolov5/Yolov7的DRConv动态区域感知卷积,即插即用,涨点显著!

1.Dynamic Region-Aware Convolution 论文:https://arxiv.org/pdf/2003.12243.pdf 本文提出了一种新的卷积算法,称为动态区域卷积算法(DRConv) ,该算法能够自动将滤波器分配到相应的空间区域,因此,DRConv具有强大的语义表示能力,并完美地保持了平移不变性。 DRConv的…

在IIS7下使用ASP连接ACCESS数据库时提示如下错误的处理方法

“/”应用程序中的服务器错误。 未在本地计算机上注册“microsoft.jet.oledb.4.0”提供程序。 这是由于使用的Win2008系统是64位的&#xff0c;以前Win2003是32位。有以下两种解决方法&#xff1a; 1、修改连接数据库的代码&#xff1a; 如原代码是 DataPath "App_Data…

Eclipse代码提示突然失灵的解决方案

不知道改动了啥&#xff0c;突然间Eclipse的代码提示就失效了&#xff0c;发现缺少后极不方便。 使用快捷键&#xff1a;Alt/ 提示 No Default Proposals 为什么使用快捷键&#xff1a;Alt/ 会提示“No Default Proposals。”呢&#xff1f; 网上提示可能是热键冲突 但是一套…

可调直动差压卸荷阀DDRV-100、DBRV-100

优点&#xff1a; 及时响应压力变化。 低压升。 潜在调节&#xff08;抗震动&#xff09;。 调整位置可锁定。 铝制操作手柄和填料压盖。 坚硬化处理。 可调直动式卸荷阀 ZRV-63 0类 可调直动式卸荷阀 DRV2-080 系列8 可调直动式卸荷阀 DRV-080_*_H 系列8 直动可调式…

微服务架构详解(一)

目录 1.微服务简介 2.微服务技术选型 3.微服务核心组件 3.1.注册中心 3.1.1.注册中心对比 3.2.服务网关 3.2.1.主流API网关对比 3.3.分布式配置中心 3.4.服务容错&#xff08;服务熔断&#xff09; 3.5.负载均衡 3.5.1.负载均衡有好几种实现策略&#xff0c; 3…

读取配置文件(properties、yaml)的八种方法

基础&#xff1a; 一、通过普通的I/O流读取配置文件(BufferedReader) 1、properties文件 2、测试类 public class TestReadProperties {Testpublic void IOReadProperties() throws IOException {// 把配置文件的内容封装进mapMap<String, Object> map new HashMap&l…

视频可视化搭建项目,通过简单拖拽方式快速生产一个短视频

一、开源项目简介 《视搭》是一个视频可视化搭建项目。您可以通过简单的拖拽方式快速生产一个短视频&#xff0c;使用方式就像易企秀或百度 H5 等 h5 搭建工具一样的简单。目前行业内罕有关于视频可视化搭建的开源项目&#xff0c;《视搭》是一个相对比较完整的开源项目&#…

矿井下无人值守变电所电力监控系统的探讨与产品选型

摘要&#xff1a;为了探讨井下无人值守变电所的电力监控系统技术&#xff0c;以西山煤电马兰矿为背景&#xff0c;详细阐述了井下无人值守变电所电力监控系统技术的各项基本参数&#xff0c;如额定工作电压及整机输入视在功率、交换机或监控分站的传输口、高压配电装置的传输口…

(二)ElasticSearch 辅助工具 Kibana 介绍与安装

1、什么是 kibana &#xff1f; Kibana 是一个针对Elasticsearch的开源分析及可视化平台&#xff0c;用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana&#xff0c;可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单&#xff…

怎么使用chatgpt,GPT的使用方式解析

怎么使用Chatgpt&#xff1f;这是很多人心中的疑惑&#xff0c;更多的人只是听说过chatgpt的大名&#xff0c;但是具体连见都没见过gpt&#xff0c;那么接下来小编就来给大家详细的介绍一下吧。 一.了解chatgpt ChatGPT是一个由人工智能和自然语言处理技术构建的聊天机器人。通…

[pytorch]FixMatch代码详解-数据加载

原文 FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence. 这里还有一个译制版的很方便阅读 FixMatch&#xff1a;通过一致性和置信度简化半监督学习 代码 pytorch的代码有很多版本&#xff0c;我选择了比较简单的一个&#xff1a; unoffi…

记一次某应用虚拟化系统远程代码执行

漏洞简介 微步在线漏洞团队通过“X漏洞奖励计划”获取到瑞友天翼应用虚拟化系统远程代码执行漏洞情报(0day)&#xff0c;攻击者可以通过该漏洞执行任意代码&#xff0c;导致系统被攻击与控制。瑞友天翼应用虚拟化系统是基于服务器计算架构的应用虚拟化平台&#xff0c;它将用户…

xxl-job 7.32版本 安装部署

文章目录 前言xxl-job 7.32版本 安装部署1. xxl-job 是什么2. 特性3. xxl-job 部署安装3.1. 下载源码3.2. 部署:3.2.1. 初始化调度数据库3.2.2. 配置调度中心 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作…