1、客户端向master提交application,master生成一个applicationMaster
2、applicationMaster根据每个worker发送到master心跳,决定在哪个worker节点上启动一个excutor(任务分配三种模式:公平、队列、资源)
3、worker启动excutor后,向driver端注册并申请task
4、driver端接收到excutor请求后,运行SparkContext
5、SparkContext构建DAG图,将DAG图分解成一个个的stage,然后将taskSet发送到TaskSchedule,最后TaskSchedule将task发送到excutor
6、程序执行结束,释放资源