北京中科白癜风医院正规吗 https://m-mip.39.net/czk/mipso_5154120.htmlFlink支持Standalone独立部署和YARN、Kubernetes、Mesos等集群部署模式,其中YARN集群部署模式在国内的应用越来越广泛。Flink社区将推出FlinkonYARN应用解读系列文章,分为上、下两篇。本文基于FLIP-6重构后的资源调度模型将介绍FlinkonYARN应用启动全流程,并进行详细步骤解析。下篇将根据社区大群反馈,解答客户端和FlinkCluster的常见问题,分享相关问题的排查思路。
FlinkonYARN流程图
FlinkonYARN集群部署模式涉及YARN和Flink两大开源框架,应用启动流程的很多环节交织在一起,为了便于大家理解,在一张图上画出了FlinkonYARN基础架构和应用启动全流程,并对关键角色和流程进行了介绍说明,整个启动流程又被划分成客户端提交(流程标注为紫色)、FlinkCluster启动和Job提交运行(流程标注为橙色)两个阶段分别阐述,由于分支和细节太多,本文会忽略掉一些,只介绍关键流程(基于Flink开源1.9版本源码整理)。
客户端提交流程
1.执行命令:bin/flinkrun-d-myarn-cluster...或bin/yarn-session.sh...来提交per-job运行模式或session运行模式的应用;
2.解析命令参数项并初始化,启动指定运行模式,如果是per-job运行模式将根据命令行参数指定的Job主类创建jobgraph;
如果可以从命令行参数(-yid)或YARNproperties临时文件(${java.io.tmpdir}/.yarn-properties-${user.name})中获取应用ID,向指定的应用提交Job;否则当命令行参数中包含-d(表示detached模式)和-myarn-cluster(表示指定YARN集群模式),启动per-job运行模式;否则当命令行参数项不包含-yq(表示查询YARN集群可用资源)时,启动session运行模式;3.获取YARN集群信息、新应用ID并启动运行前检查;
通过YarnClient向YARNResourceManager(下文缩写为:YARNRM,YARNMaster节点,负责整个集群资源的管理和调度)请求创建一个新应用(YARNRM收到创建应用请求后生成新应用ID和container申请的资源上限后返回),并且获取YARNSlave节点报告(YARNRM返回全部slave节点的ID、状态、rack、