flink yarn模式HA部署
文章目录
- 1、yarn cluster 模式部署介绍
- 2、flink session HA模式
- 3、flink-per-job模式
该文章基于上一篇: Flink的local和standalone HA安装部署
1、yarn cluster 模式部署介绍
mr和spark都可以基于yarn模式部署,flink也不例外,生产中很多也基于yarn模式部署。
flink的yarn模式部署也分为两种方式,一种是yarn-session,一种是yarn-per-job。大致如下图:
2、flink session HA模式
需要先启动集群,然后在提交作业,接着会向yarn申请一块资源空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交。
适合场景:
当作业很少并且都较小,能快速执行完成时,可以使用。否则一般不会使用该模式。
这种模式,不需要做任何配置,直接将任务提价到yarn集群上面去,我们需要提前启动hdfs以及yarn集群即可。
两个进程:
运行yarn-session的主机上会运行FlinkYarnSessionCli和YarnSessionClusterEntrypoint两个进程。
在yarn-session提交的主机上必然运行FlinkYarnSessionCli,这个进场代表本节点可以命令方式提交job,而且可以不用指定-m参数。
YarnSessionClusterEntrypoint进场代表yarn-session集群入口,实际就是jobmanager节点,也是yarn的ApplicationMaster节点。
这两个进程可能会出现在同一节点上,也可能在不同的节点上。
1、配置
[root@hadoop01 flink-1.9.1]# vi ./conf/flink-conf.yaml追加如下内容:
# flink yarn HA settings
high-availability: zookeeper
high-availability.zookeeper.quorum: hadoop01:2181,hadoop02:2181,hadoop03:2181
high-availability.zookeeper.path.root: /flink_yarn
high-availability.cluster-id: /cluster_flink_yarn
high-availability.storageDir: hdfs://hadoop01:9000/flink_yarn/recovery
hadoop02 和 hadoop03分别做如上的配置。
2、启动flink session
先确保zookeeper、hdfs、yarn是启动okay。
[root@hadoop01 flink-1.9.1]# yarn-session.sh -n 3 -jm 1024 -tm 1024
...................................
2020-04-14 11:52:59,248 INFO org.apache.flink.shaded.curator.org.apache.curator.framework.state.ConnectionStateManager - State change: CONNECTED
2020-04-14 11:52:59,753 INFO org.apache.flink.runtime.rest.RestClient - Rest client endpoint started.
Flink JobManager is now running on hadoop02:41674 with leader id 04caacdd-23c6-4e79-acd5-6db3b1014be0.
JobManager Web Interface: http://hadoop02:8081 ##代表jobmanager启动到hadoop02
报错1:
Diagnostics: Container [pid=9528,containerID=container_1586835850522_0001_03_000001] is running beyond virtual memory limits. Current usage: 316.1 MB of 1 GB physical memory used; 2.3 GB of 2.1 GB virtual memory used. Killing container.解决方法:
在hadoop01、hadoop02、hadoop03中的yarn-site.xml中配置如下:
<!--关闭nm的虚拟内存检测-->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>
3、环境检测
根据启动的信息可知,flink启动到咯hadoop02,则使用jps测试一下:
jps检测进程:
[root@hadoop02 flink-1.9.1]# jps
8992 DataNode
9985 YarnSessionClusterEntrypoint
web页面查看:http://hadoop02:8081
查看yarn的web控制台:http://hadoop01:8088
4、提交作业测试:
提交作业和standalone一样正常提交即可。
[root@hadoop02 flink-1.9.1]# flink run /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl01
Starting execution of program
Program execution finished
Job with JobID c3fd22587744bc54a6d69af6573a3183 has finished.
Job Runtime: 20642 ms
5、HA切换检测
杀死YarnSessionClusterEntrypoint服务,,看看还能不能在集群中找到该服务。
[root@hadoop02 flink-1.9.1]# jps
8992 DataNode
9985 YarnSessionClusterEntrypoint
8901 QuorumPeerMain
9096 SecondaryNameNode
9720 NodeManager
11210 Jps
#杀死进程造成异常退出
[root@hadoop02 flink-1.9.1]# kill -9 9985
当是HA时,,则一个挂掉后,则JM将会失败转移到另外的服务器上。如下是转移到hadoop01上。
[root@hadoop01 flink-1.9.1]# jps
9408 NameNode
12017 YarnSessionClusterEntrypoint再次测试job:
[root@hadoop02 flink-1.9.1]# flink run /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl03
Starting execution of program
Program execution finished
Job with JobID 779689f706af7a9cb05e771a80e89128 has finished.
Job Runtime: 11462 msyarn session提交的作业,,在yarn的web平台中看不到。可以通过flink --list来查看。
6、如何停止运行的程序
通过cancel命令进行停止:
flink cancel -s hdfs:///flink/savepoints /savepoints-* -yid application_1586836326559_0002
或者通过 flink list 获得 jobId
flink list
flink cancel -s hdfs:///flink/savepoints/savepoint-* jobId
其中-s为可选操作
7、关闭jobmanager
直接将yarn-session停止掉:
yarn application -kill applicationId
3、flink-per-job模式
yarn session需要先启动一个集群,然后在提交作业。
但是Flink-per-job直接提交作业即可,不需要额外的去启动一个flink-session集群。直接提交作业,即可完成Flink作业。
适合场景:
作业多、且每个作业运行时长不定。生产推荐使用该模式运行作业。
1、直接使用flink run运行即可
[root@hadoop01 flink-1.9.1]# flink run -m yarn-cluster /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl05
查看yarn的web平台:
flink yarn模式HA部署相关推荐
- Flink Standalone模式HA部署
Standalone Cluster HA 前面我们配置的 Standalone 集群实际上只有一个 JobManager,此时是存在单点故障的,所以官方提供了 Standalone Cluster ...
- flink yarn模式提交及查看日志
一.Yarn session(一般测试环境) yarn session会初始启动指定的tm数量. job提交后再指定的session 内运行. 其它job运行,如果资源不够,就会一直等待直到占用的j ...
- spark on yarn 完全分部署_大数据Spark面试题(一)
1.spark的有几种部署模式,每种模式特点?(☆☆☆☆☆) 1)本地模式 Spark不一定非要跑在hadoop集群,可以在本地,起多个线程的方式来指定.将Spark应用以多线程的方式直接运行在本地, ...
- Flink (四) Flink 的安装和部署- Flink on Yarn 模式 / 集群HA / 并行度和Slot
接上一篇 Flink (三) Flink 的安装和部署- -Standalone模式 3. Flink 提交到 Yarn Flink on Yarn 模式的原理是依靠 YARN 来调度 Flink ...
- 【Flink】Flink简介及Standalone、Yarn和Kubernetes模式的部署
1.Flink 简介 Flink 起源于 Stratosphere 项目,Stratosphere 是在 2010~2014 年由 3 所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目,201 ...
- Flink on Yarn(HA配置)
根据部署方式不同,Flink Jobmanager HA配置分为2种: 1.standalone cluster HA 2.Yarn cluster HA 其中,standalone cluster ...
- ideal 本地jar依赖_通过 YARN 的资源本地化技术减少 Flink 在 YARN 上的部署时间
在使用 Flink 的生产实践中,我们发现采用 Flink on YARN 的部署方式时,将大量用户依赖的 JAR 包和其他文件上传到对应的容器中是从用户发送部署请求到应用实际运行起来的重要耗时操作. ...
- flink的Yarn模式
以Yarn模式部署的Flink任务时,要求Flink是有Hadoop支持的版本,并且集群中安装HDFS服务 Flink on YarnFlink提供了两种在yarn上运行的模式,分别为Session- ...
- flinkx 部署,on yarn模式运行
目录 1.flinkx部署 参考官方安装文档,但是会有一些坑 2.FlinkX版本需要与Flink版本保持一致,最好小版本也保持一致 下载最新编译包 下载后,lib里面缺少flinkx-launche ...
最新文章
- php主要算法设计,四种排序算法设计(PHP)
- 陶哲轩发文缅怀John Conway:他是所有数学家构成的凸包中的一个极值点
- 模拟器真机环境_Appium+python自动化(二)- 环境搭建—下(超详解)
- [Linux] shell
- Hibernate 学习笔记(二)—— Hibernate HQL查询和 QBC 查询
- 华为手机如何关闭通知栏推送消息_如果华为手机升级EMUI10后,电池耗电很快!要记得调整这3个设置...
- 保护眼睛的电脑设置_干货,怎么设置显示器,才能保护好我们的眼睛?
- html中的波浪线,CSS3 波浪线
- OpenShift 4 - 为客户端配置使用基于CA证书的kubeconfig实现无密码登录
- 《信号与系统》(吴京)部分课后习题答案与解析——第二章(PART2)
- 使用无线投屏软件将手机和电脑画面同步
- Hi3519/Hi3559 系列芯片 AI资料介绍
- ENGLISH-英文进修
- 模拟赛 东风谷早苗
- 9.9的阿里巴巴编码规范考试竟如此简单?搜集试题分享!让我们一起守护开发规范!
- 采集同花顺android数据,同花顺对比app排行榜数据_SZ300033_乌龟量化
- seqkit根据基因id_基因家族分析保姆级教程(分子进化)-生信小白自学之路
- 淘宝双十一前卖家要做好哪些准备?
- 电销CRM客户关系管理系统开发12大核心功能
- IDEA相对路径系统找不到指定的文件问题