这里记录一下LauncherBackend和LauncherServer的通信流程
流程图
流程说明
SparkLauncher 在startApplication方法里通过createBuilder方法调用spark-submit脚本,同时启动LauncherServer服务,用于接收LauncherBackend的消息
通过把固定的环境变量通告出去,通知LauncherBackend启动连接LauncherServer。
spark-submit 脚本调用SparkSubmit,SparkSubmit调用org.apache.spark.deploy.yarn.Client 来提交任务到yarn上。
yarn.Client 在 submitApplication中启动LauncherBackend 来连接LauncherServer。
并且在run方法中通过monitorApplication 中来检查app的状态变化,然后通过launcherBackend 把状态变化通知到 launcherServer上
LauncherServer收到通知后会调用用户提供的listener
更多细节参考Launcher其他记录
相关记录链接
*SparkLauncher
*LauncherServer
*LauncherBackend
*ChildProcAppHandle