李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
06.Flink Yarn模式介绍
Leefs
2021-12-24 AM
2121℃
0条
[TOC] ### 前言 Flink的Standalone和on Yarn模式都属于集群运行模式,但是有很大的不同,在实际环境中,使用Flink on Yarn模式者居多。 **Standalone和on Yarn模式的最大不同点是管理资源的不同:** + Standalone模式通过Flink自身来管理集群资源 + on Yarn模式通过Hadoop Yarn来对集群资源进行管理 ### 一、概述 以Yarn模式部署Flink任务时,要求Flink是有Hadoop支持的版本,Hadoop环境需要保证版本在 2.2以上,并且集群中安装有HDFS服务。 #### Flink on Yarn Flink提供了两种在yarn上运行的模式,分别为**Session-Cluster**和**Per-Job-Cluster**模式。 + **Session-cluster模式** ![06.Flink Yarn模式介绍01.png](https://lilinchao.com/usr/uploads/2021/12/2709709020.png) Session-Cluster模式需要先启动集群,然后再提交作业,接着会向yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。 在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。 + **Per-Job-Cluster模式** ![06.Flink Yarn模式介绍02.png](https://lilinchao.com/usr/uploads/2021/12/2404439663.png) 一个Job会对应一个集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享Dispatcher和 ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。 每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。 ### 二、执行命令 + **Session Cluster** **(1)启动yarn-session** ```shell [root@hadoop001 bin]# pwd /opt/software/flink-1.14.2/bin [root@hadoop001 bin]# ./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d ``` **说明** | 参数 | 说明 | | --------------- | ------------------------------------------------------------ | | -n(--container) | TaskManager 的数量 | | -s(--slots) | 每个 TaskManager 的 slot 数量,默认一个 slot 一个 core,默认每个 taskmanager 的 slot 的个数为 1,有时可以多一些 taskmanager,做冗余。 | | -jm | JobManager 的内存(单位 MB) | | -tm | 每个 taskmanager 的内存(单位MB) | | -nm | yarn 的 appName(现在 yarn 的 ui 上的名字) | | -d | 后台执行 | **(2)执行任务** ```shell [root@hadoop001 bin]# ./flink run -c com.leefs.wc.StreamWordCount flinkdemo.jar --host lcoalhost –port 7777 ``` **(3)通过yarn控制台查看任务状态** **(4)取消yarn-session** ```shell yarn application --kill application_1577588252906_0001 ``` + **Per Job Cluster** **(1)执行任务** ```shell [root@hadoop001 bin]# ./flink run –m yarn-cluster -c com.leefs.wc.StreamWordCount flinkdemo.jar --host lcoalhost –port 7777 ``` *注意:不启动 yarn-session,直接执行 job* ### 三、Yarn高可用和Standalone 高可用区别 + **Standalone 高可用** 同时启动多个JobManger,若执行任务的JobManger挂了,其他JobManager马上补上。 + **Yarn 高可用** JobManager只有一个,但是配置了重试次数,挂了之后再重启(重启一个新的ApplicationManager),利用了ApplicationMaster的重启机制。 若在一定时间范围内重试都启动不了,那么就真的挂了。 如30秒内重试3次,若重启成功,则重试次数清零。 ### 总结 **Flink提供在Yarn上两种运行模式:Session-Cluster和Per-Job-Cluster** Session-Cluster:资源在启动集群时就定义完成,后续所有作业的提交都共享该资源,作业可能会互相影响,因 此比较适合小规模短时间运行的作业; Per-Job-Cluster:所有作业的提交都是单独的集群,作业之间的运行不受影响(可能会共享CPU计算资源),因此 比较适合大规模长时间运行的作业。 *附参考文章链接:* *https://www.jianshu.com/p/861bc86465c9*
标签:
Flink
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1783.html
上一篇
05.Flink Standalone模式单机版安装
下一篇
Cerebro安装教程
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
Jenkins
Elasticsearch
Java
Docker
BurpSuite
Golang基础
Eclipse
Spark
Ubuntu
Python
MySQL
JavaWeb
Quartz
锁
数据结构
栈
正则表达式
数学
SQL练习题
SpringBoot
Tomcat
VUE
前端
稀疏数组
Git
FileBeat
pytorch
查找
高并发
Spark Core
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭