Driver就是自己写的程序,里面有一个main方法,main方法划分DAG,形成Task,再把Task发出去
DAGScheduler的功能,将rdd转换逻辑切分stage,生成taskset
然后模拟taskScheduler的功能,将这些task发到Executor上去执行(真正的发送逻辑spark submit
进程启动Driver,然后Driver会找Executor,将Executor启动起来,然后Executor会向Driver反向注册
是动态获取的,这样Driver会持有Executor的地址,Executor知道Driver在哪里,Driver也知道Executor在哪里)
注意,如果划分有两个stage,是会有两个taskset的
然后在虚拟机上,上传打好的jar包,这样就会看到三个节点有三个Executor启动,然后用submit进程启动,里面调用Driver
发布任务到Executor,然后三个Executor就会执行对应自己分区的任务