本文转载Flink官方社区文章:一张图轻松掌握 Flink on YARN 基础架构与启动流程
Flink on YARN 集群部署模式涉及 YARN 和 Flink 两大开源框架,应用启动流程的很多环节交织在一起,下图展示了 Flink on YARN 基础架构和应用启动全流程,并对关键角色和流程进行了介绍说明。整个启动流程被划分成客户端提交(流程标注为紫色)、Flink Cluster 启动和 Job 提交运行。
Flink on Yarn
bin/flink run -d -m yarn-cluster ...
##或
bin/yarn-session.sh ...
来提交 per-job 运行模式或 session 运行模式的应用;
${java.io.tmpdir}/.yarn-properties-${user.name}
)中获取应用 ID,向指定的应用中提交 Job;否则当命令行参数中包含 -d(表示detached模式)和 -m yarn-cluster(表示指定 YARN 集群模式),启动 per-job 运行模式;否则当命令行参数项不包含 -yq(表示查询YARN集群可用资源)时,启动 session 运行模式;/user/${user.name}/.flink/
);${yarn.nodemanager.localdirs}/usercache/${user}/appcache/<APPLICATION_ID>/<CONTAINER_ID>)
;${yarn.heartbeat.interval}
,默认 5s)向 YARN RM 发送心跳来发送资源更新请求和接受资源变更结果。YARN RM 内部该应用和应用运行实例的状态都变为 RUNNING,并通知 AMLivelinessMonitor 服务监控 AM 是否存活状态,当心跳超过一定时间(默认 10 分钟)触发 AM failover 流程;