flink on yarn

news2024/11/25 19:26:06

文章目录

      • flink sql client on yarn
        • session 模式
        • Per-Job Cluster 模式
      • flink run

安装完hadoop 3.3.4之后,启动hadoop、yarn

将flink 1.14.6上传到各个服务器节点,解压

flink sql client on yarn

https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/overview/
在这里插入图片描述

Application Mode
为每一个应用启动一个集群,应用运行在JM上(由JM来执行应用中的main()方法),应用结束,集群关闭。
为每个应用程序创建一个集群可以看作是创建一个仅在特定应用程序的作业之间共享的会话集群,并在应用程序完成时关闭。
在应用粒度上提供了与Per-Job Mode一样的资源隔离和负载均衡保证。

与Per-Job(已弃用)模式相比,Application Mode允许提交包含多个作业的应用程序。作业执行的顺序不受部署模式的影响,但是会受启动作业的调用方式影响。调用execute(),一个作业会被阻塞,直到上一个作业完成后,才会开始。
executeAsync()是非阻塞的,上一个作业未结束时,当前作业也可以执行。

Per-Job Mode (Flink 1.15 中已弃用)
依赖外部资源管理框架(比如Yarn),为每一个应用启动一个集群。这个集群仅服务于该应用,应用结束,集群占用的资源也将被释放

Session Mode
会话模式假定一个已经在运行的集群并使用该集群的资源来执行任何提交的应用程序。在同一(会话)集群中执行的应用程序使用并因此竞争相同的资源。这样做的好处是您无需为每个提交的作业支付启动完整集群的资源开销。但是,如果其中一个作业行为不当或导致 TaskManager 崩溃,则在该 TaskManager 上运行的所有作业都将受到故障的影响。这除了对导致失败的作业产生负面影响外,还意味着一个潜在的大规模恢复过程,所有重新启动的作业同时访问文件系统并使其对其他服务不可用。此外,让一个集群运行多个作业意味着 JobManager 有更多的负载

Flink sql client 1.14中可以使用session 模式和per-job模式,application 模式暂时还不支持

session 模式

Session 模式下,需要先执行一下命令启动 Yarn Session

./bin/yarn-session.sh -d
-d为后台运行

Yarn Session 启动成功后,会创建一个/tmp/.yarn-properties-root文件,记录最近一次提交到 Yarn 的 Application ID,执行以下命令启动 SQL 客户端命令行界面,后续指定的 Flink SQL 会提交到之前启动的 Yarn Session Application。

./bin/sql-client.sh embedded -s yarn-session

可以执行以下命令停止当前启动的 Yarn Session。

cat /tmp/.yarn-properties-root | grep applicationID | cut -d'=' -f 2 | xargs -I {} yarn application -kill {}

Per-Job Cluster 模式

Per-Job Cluster 模式无需提前启动集群,可以在启动 SQL 客户端命令行界面,设置execution.target,后续提交的每一个 Flink SQL 任务将会作为独立的任务提交到 Yarn。

./bin/sql-client.sh embedded

Flink SQL> set execution.target=yarn-per-job;
[INFO] Session property has been set.

也可以通过在flink-conf.yaml文件预定义配置改参数。

# flink-conf.yaml
execution.target: yarn-per-job

flink run

官方文档
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/resource-providers/yarn/

./bin/flink run -t yarn-per-job --detached ./examples/streaming/TopSpeedWindowing.jar

发现提示说找不到yarn相关的class

于是在系统环境变量中配置
export HADOOP_CLASSPATH=`hadoop classpath`

这个变量是通过执行hadoop classpath这个shell命令来获取hadoop环境变量,所以需要设置好hadoop的系统环境变量

# hadoop home
export HADOOP_HOME=/opt/hadoop/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
# flink
export HADOOP_CLASSPATH=`hadoop classpath`

继续执行命令

./bin/flink run -t yarn-per-job --detached ./examples/streaming/TopSpeedWindowing.jar

又出现如下报错

Exception in thread "Thread-5" java.lang.IllegalStateException: Trying to access closed classloader. Please check if                  you store classloaders directly or indirectly in static fields. If the stacktrace suggests that the leak occurs in                  a third party library and cannot be fixed immediately, you can disable this check with the configuration 'classloade                 r.check-leaked-classloader'.
        at org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.ens                 ureInner(FlinkUserCodeClassLoaders.java:164)
        at org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.get                 Resource(FlinkUserCodeClassLoaders.java:183)
        at org.apache.hadoop.conf.Configuration.getResource(Configuration.java:2830)
        at org.apache.hadoop.conf.Configuration.getStreamReader(Configuration.java:3104)
        at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3063)
        at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:3036)
        at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2914)
        at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2896)
        at org.apache.hadoop.conf.Configuration.get(Configuration.java:1246)
        at org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1863)
        at org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1840)
        at org.apache.hadoop.util.ShutdownHookManager.getShutdownTimeout(ShutdownHookManager.java:183)
        at org.apache.hadoop.util.ShutdownHookManager.shutdownExecutor(ShutdownHookManager.java:145)
        at org.apache.hadoop.util.ShutdownHookManager.access$300(ShutdownHookManager.java:65)
        at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:102)

解决方法:
禁用类加载器检查

./bin/flink run -t yarn-per-job --detached
-Dclassloader.check-leaked-classloader=false
./examples/streaming/TopSpeedWindowing.jar

问题原因:https://blog.csdn.net/weixin_52918377/article/details/123551809

查看yarn,可以看到两次提交的任务,上面的异常好像不会影响任务运行
在这里插入图片描述

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

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

相关文章

SQL注入

目录 一、SQL注入原理 二、SQL注入的危害 三、SQL注入的分类 四、SQL注入的流程 五、总结 一、SQL注入原理 1.SQL注入产生的原因: 当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造…

面试真题 | 需求评审中从几个方面发现问题

面试官问题 在需求评审会议中,你会发现什么问题? 在需求评审时,是通过哪几个角度来进行考虑及发现问题的? 考察点 是否参加过需求评审 在需求评审过程中是否能提出有效的问题 4个角度发现问题 在需求评审的过程中通过以下4个…

【Vue 快速入门系列】一文透彻vue中使用axios及跨域问题的解决

文章目录一、什么是Axios?1.前置知识2.vue中使用axios3.Axios两种请求方式①.调用接口②.传入对象3.Axios支持的请求类型①.get请求②.post请求③.put请求④.patch请求⑤.delete请求二、跨域问题解决方案1.什么是跨域问题?2.解决方案一:在Vue…

基于微信小程序的社区心理健康服务-计算机毕业设计

项目介绍 社区心理健康服务平台小程序采用java开发语言、以及Mysql数据库等技术。系统主要分为管理员和用户、咨询师三部分,管理员服务端:首页、个人中心、用户管理、咨询师管理、心理书籍管理、相关资源管理、试卷管理、试题管理、系统管理、订单管理&…

希沃 API 网关架构演进之路

网关往期迭代与痛点 希沃网关的发展经历了四个版本的迭代。2013 年公司开始尝试互联网业务,那时候采用了 OpenRestyNGINX 静态配置的方式搭建了最初的网关,开发人员通过 SCP 来发布。与此同时一个比较严重的问题就是,每次上线发布都需要运维…

喜讯+1!袋鼠云数栈技术团队获“2022年度优秀开源技术团队”

近日,在“开源中国(OSCHINA)”开展的年度评选中,袋鼠云数栈技术团队凭借在2022年间的技术分享频率及质量、运营积极性等多方面的表现,荣获“2022年度优秀开源技术团队”的称号,这也是袋鼠云数栈技术团队连续…

umi学习总结

文章目录umi介绍umi是什么?umi的特性开发环境Node.js依赖管理工具目录结构路由配置路由页面跳转Link组件路由组件参数:路由动态参数query信息样式使用css样式dva为什么需要状态管理umi如何管理状态umi介绍 umi是什么? Umi,中文发…

自定义委托类

setItemDelegete();该函数可以自定义委托类 该例子为Qt官网的一个例子:使用QSpinBox来提供编辑功能 首先创建一个项目:名为object在项目中添加一个c类,类名为SpinBoxDelegate 修改该类的基类:更改为QImageDelegate,然后需要添加重…

12/15历史上的今天

宜找代驾 星期四 农历十一月廿二 今夜无人拥你入怀不如喝完杯中酒走入夜色中踏上回家的归途 *约翰-梅尔西藏墨脱公路嘎隆拉隧道顺利贯通 2010年12月15日,西藏墨脱公路控制性工程——嘎隆拉隧道顺利贯通。   2010年12月15日西藏墨脱公路控制性工程——嘎隆拉隧道…

华为开源自研AI框架昇思MindSpore应用实践:RNN实现情感分类

目录一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例二、数据准备1.数据下载模块2.加载IMDB数据集2.加载预训练词向量三、数据集预处理四、模型构建1.Embedding2.RNN(循环神经网络)3.Dense4.损失函数与优化器5.训练逻辑6.评估指标和逻辑五、模型训练与保存六、模…

电脑重装系统后卡顿怎么办?教你快速解决电脑卡顿问题

​Win10电脑卡顿怎么办?许多用户在使用电脑的过程中发现,随着使用时间的增加,电脑会越来越卡顿。有些小伙伴就会选择重装电脑系统,那么我们在重装电脑之后要进行什么操作才能让电脑不卡顿呢? 操作方法: 优化…

java学生成绩管理系统源码swing(GUI) MySQL带开发教程永久学习

今天给大家演示一款由Java swing即GUI和mysql数据库实现的,学生成绩管理系统,系统采用了MVC的设计模式,结构层次非常清晰,此外,该项目有手把手的开发教程,适合刚入门Java的学生学习,下面我们来看…

Pr:导出设置

◆ ◆ ◆导出设置(媒体文件)Export Settings(Media File)基本设置文件名File Name指定导出的文件名。位置Location可以点击蓝色字更改导出的文件的存放位置。预设Preset选择导出预设。匹配源 Match Source预设会将大多数设置与源…

[附源码]Python计算机毕业设计高校贫困生信息管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

Mysql 查询获取 为数字的 字符串

先看示例数据: test_value 字段 为 VARVCHAR 类型 数据样例: 包含 纯数字, 带小数点的数字, 字符串 获取里面的纯数字 :使用正则匹配 函数 REGEXP ,返回 1代表不匹配, 返回 0 代表匹配 包含小数点 [^0-…

两步开启研发团队专属ChatOps|极狐GitLab ChatOps 的设计与实践

本文来自: 彭亮 极狐(GitLab) 高级产品经理 郭旭东 极狐(GitLab) 资深创新架构师 舒文斌 极狐(GitLab) 高级网站可靠性工程师 最近几天,ChatGPT 真是杀疯了 ! 相信大家的朋友圈,已经被调戏、询问或探讨 ChatGPT 的贴子刷屏。 看到…

虹科案例 | 风电机组的预测性维护应该如何进行?

虹科预测性维护方案 在风能领域的应用 虹科案例 01 应用背景 风能是最重要的清洁能源之一,大力发展风电等清洁能源是实现国家可持续发展战略的必然选择。发展风电、光伏等新能源的高效运维技术已成为当前电力系统面临的重要问题之一。在风电机组单机容量较大、机组…

在Azure上设置存储账户

目录 (一)前言 (二)正文 1. 搜索存储账户类型资源 2. 开始创建新存储账户 (1)基本信息 (2)高级选项 (3)网络配置 (4)数据保护…

怎么看电脑是32位还是64位?2个方法,快速查看

熟悉计算机操作系统的朋友应该知道,电脑系统分为32位和64位。不同系统位数的兼容软件也会有所不同。怎么看电脑是32位还是64位?这里小编分享2个方法,快速查看自己的电脑系统位数。 方法一:电脑属性查看法 很多小伙伴不知道怎么看…

特殊符号——双引号和单引号

特殊符号——双引号和单引号一.通常理解二.一般使用三.特殊使用四.为何计算机需要字符一.通常理解 在c语言中,我们通常认为双引号保存的是字符串,单引号里保存的是字符。这里也没什么好说的,说一说它们的细微的一些地方 二.一般使用 接下来我…