Flink On Yarn模式,为什么使用Flink On Yarn?Session模式、Per-Job模式、关闭yarn的内存检查,由Yarn模式切换回standalone模式时需要注意的点
Flink On Yarn模式
原理
为什么使用Flink On Yarn?
在实际开发中,使用Flink时,更多的使用方式是Flink On Yarn模式,原因如下:
-1.Yarn的资源可以按需使用,提高集群的资源利用率
-2.Yarn的任务有优先级,根据优先级运行作业
-3.基于Yarn调度系统,能够自动化地处理各个角色的 Failover(容错)
○ JobManager 进程和 TaskManager 进程都由 Yarn NodeManager 监控
○ 如果 JobManager 进程异常退出,则 Yarn ResourceManager 会重新调度 JobManager 到其他机器
○ 如果 TaskManager 进程异常退出,JobManager 会收到消息并重新向 Yarn ResourceManager 申请资源,重新启动 TaskManager
Flink如何和Yarn进行交互?
1.Client上传jar包和配置文件到HDFS集群上
2.Client向Yarn ResourceManager提交任务并申请资源
3.ResourceManager分配Container资源并启动ApplicationMaster,然后AppMaster加载Flink的Jar包和配置构建环境,启动JobManager
JobManager和ApplicationMaster运行在同一个container上。
一旦他们被成功启动,AppMaster就知道JobManager的地址(AM它自己所在的机器)。
它就会为TaskManager生成一个新的Flink配置文件(他们就可以连接到JobManager)。
这个配置文件也被上传到HDFS上。
此外,AppMaster容器也提供了Flink的web服务接口。
YARN所分配的所有端口都是临时端口,这允许用户并行执行多个Flink
4.ApplicationMaster向ResourceManager申请工作资源,NodeManager加载Flink的Jar包和配置构建环境并启动TaskManager
5.TaskManager启动后向JobManager发送心跳包,并等待JobManager向其分配任务
两种方式
Session模式
特点:需要事先申请资源,启动JobManager和TaskManger
优点:不需要每次递交作业申请资源,而是使用已经申请好的资源,从而提高执行效率
缺点:作业执行完成以后,资源不会被释放,因此一直会占用系统资源
应用场景:适合作业递交比较频繁的场景,小作业比较多的场景
Per-Job模式
特点:每次递交作业都需要申请一次资源
优点:作业运行完成,资源会立刻被释放,不会一直占用系统资源
缺点:每次递交作业都需要申请资源,会影响执行效率,因为申请资源需要消耗时间
应用场景:适合作业比较少的场景、大作业的场景
操作
vim /export/server/hadoop/etc/hadoop/yarn-site.xml
添加:
<!-- 关闭yarn内存检查 --><property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>
说明:
是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
在这里面我们需要关闭,因为对于flink使用yarn模式下,很容易内存超标,这个时候yarn会自动杀掉job
2.同步
scp -r /export/server/hadoop/etc/hadoop/yarn-site.xml node2:/export/server/hadoop/etc/hadoop/yarn-site.xml
scp -r /export/server/hadoop/etc/hadoop/yarn-site.xml node3:/export/server/hadoop/etc/hadoop/yarn-site.xml
3.重启yarn
/export/server/hadoop/sbin/stop-yarn.sh
/export/server/hadoop/sbin/start-yarn.sh
测试
Session模式
yarn-session.sh(开辟资源) + flink run(提交任务)
1.在yarn上启动一个Flink会话,node1上执行以下命令
/export/server/flink/bin/yarn-session.sh -n 2 -tm 800 -s 1 -d
说明:
申请2个CPU、1600M内存# -n 表示申请2个容器,这里指的就是多少个taskmanager
# -tm 表示每个TaskManager的内存大小
# -s 表示每个TaskManager的slots数量
# -d 表示以后台程序方式运行
注意:
该警告不用管
WARN org.apache.hadoop.hdfs.DFSClient - Caught exception
java.lang.InterruptedException
2. 查看UI界面
http://node1:8088/cluster
3.使用flink run提交任务:
/flink/bin/flink run /export/server/flink/examples/batch/WordCount.jar
run /export/server/flink/examples/batch/WordCount.jar
4.通过上方的ApplicationMaster可以进入Flink的管理界面
5.关闭yarn-session:
yarn application -kill application_1599402747874_0001
rm -rf /tmp/.yarn-properties-root
Per-Job分离模式
1.直接提交job
/export/server/flink/bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 /export/server/flink/examples/batch/WordCount.jar
# -m jobmanager的地址
# -yjm 1024 指定jobmanager的内存信息
# -ytm 1024 指定taskmanager的内存信息
2.查看UI界面
http://node1:8088/cluster
3.注意:
在之前版本中如果使用的是flink on yarn方式,想切换回standalone模式的话,如果报错需要删除:【/tmp/.yarn-properties-root】
rm -rf /tmp/.yarn-properties-root
因为默认查找当前yarn集群中已有的yarn-session信息中的jobmanager
Flink On Yarn模式,为什么使用Flink On Yarn?Session模式、Per-Job模式、关闭yarn的内存检查,由Yarn模式切换回standalone模式时需要注意的点相关推荐
- CC00012.flink——|HadoopFlink.V03|——|Flink.v03|安装部署|StandAlone模式部署|
一.Flink安装和部署 ### --- Flink支持多种安装模式~~~ local(本地):单机模式,一般本地开发调试使用 ~~~ StandAlone 独立模式:Flink自带集群,自己管理资源 ...
- flink source 同步_如何生成 Flink 作业的交互式火焰图?
原标题:如何生成 Flink 作业的交互式火焰图? 简介:Flink 是目前最流行的大数据及流式计算框架之一,用户可以使用 Java/Scala/Python 的 DataStream 接口或者标准 ...
- Flink学习1——运行时架构(standalone模式)
本篇主要讲述Flink Standalone模式下的运行时架构以及各个组件负责的功能,Flink的运行方式有很多,但都大同小异,本文基本可以满足对flink运行时架构的学习. 正文 Flink系统是主 ...
- SS00004.flink——|HadoopFlink计算领域锋利的武器.v04|——|Flink.v01|StandAlone模式部署|
一.Flink安装和部署 ### --- Flink支持多种安装模式~~~ local(本地):单机模式,一般本地开发调试使用 ~~~ StandAlone 独立模式:Flink自带集群,自己管理资源 ...
- Flink环境搭建(standalone模式)
本文开头附:Flink 学习路线系列 ^ _ ^ 1.Flink环境搭建 1.1 架构说明(standalone模式) standalone 是 Flink 自带的一个分布式集群,它不依赖其他的资源调 ...
- flink集群standalone模式安装
Flink完全分布式集群安装 - 知乎 Flink安装及使用 - Ruthless - 博客园 flink基本原理 - 阿凡卢 - 博客园Apache Flink1.13.x HA集群部署_willb ...
- Flink学习笔记:搭建Flink on Yarn环境并运行Flink应用
文章目录 一.官网下载Flink 二.安装配置Flink (一)上传Flink安装到master节点 (二)解压Flink安装包到指定目录 (三)配置Flink环境变量 (三)配置Flink on Y ...
- flink Standalone模式部署
部署前环境准备(基本的环境变量配置这里就不赘述了) jdk8和flink-1.14.0-bin-scala_2.12我这里准备了四台服务器,分别为node100~node103将安装包上传至各个服务器 ...
- flink的standalone模式环境搭建
一.standalone模式 所有的资源都由flink自己管理 flink的jar包:flink-1.11.2-bin-scala_2.11.tgz 把安装包放到linux中 bin #服务或命令 c ...
最新文章
- java web学习笔记-jsp篇
- 第14章 结构和其他数据形式 14.12 typedef 简介
- 其他机无法连接到redis
- SAP Analytics Cloud里取出SAP Cloud for Customer的Reports列表
- uoj#38. 【清华集训2014】奇数国(线段树+数论)
- 如何快速python入手_初学者怎么才能快速学会Python?
- react项目开发入门
- css中的伪类 之 first-child
- BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
- 面向对象11:向下转型的使用、instanceof关键字、Object类的使用
- UVM组件(以APB协议为例)——UVM
- 网页轮显幻灯片 php,图片轮显代码大全(JS幻灯片)
- php一句话跨域,php跨域怎么解决
- 全国计算机二级C语言过关要求,计算机二级考试c语言过关经验
- 光盘怎么刻录服务器系统,如何刻录系统光盘?小编手把手教你电脑Windows刻录系统光盘的方法...
- mysql 唯一性榆树_榆树有多少种
- win10必须禁用的服务_WIN10优化小技巧
- 浅谈全概率公式和贝叶斯公式
- 交叉编译ffmpeg
- C语言和汇编语言函数调用
热门文章
- 电气:6机30节点经济调度(考虑负荷平衡、线路容量、斜坡约束)代码实现
- 遗传算法求最短路径(旅行商问题)python实现
- 【Python】函数递归实例之字符串反转、汉诺塔问题分析
- HashMap 的性能因子
- wxWidgets:将所有内容与 wxString 相互转换
- boost::signals2模块实现显示插槽通过接口传递的示例程序
- boost::msm::mpl_graph::breadth_first_search相关的测试程序
- boost::multi_array模块测试 storage_order-isms
- boost::mpi模块reduce() 集合的性能测试
- boost::fusion::at_c用法的测试程序