Spark on k8s 源码解析执行流程
1.通过spark-submit脚本提交spark程序
在spark-submit脚本里面执行了SparkSubmit类的main方法
2.运行SparkSubmit类的main方法,解析spark参数,调用submit方法
3.在submit方法里调用doRunMain方法,最终调用runMain方法
4.在runMain方法里面获取mainClass,再去执行start方法
1、准备提交环境
2、获取类加载器
3、判断是否是sparkApplication
4、执行sparkApplication的start方法
5.在start方法里面去调用KubernetesClientApplication的start方法
1、获取k8s的集群域名,调用k8s的客户端,传入spark相关配置参数
6.调用Client的run方法,通过k8s的apiserver创建Container pod 然后在container中创建driver pod
1、创建configmap
2、创建driver pod