sparkdriver的功能有哪些?
Spark Driver功能
Driver运行应用程序的时候,具有main方法,且创建了SparkContext,是整个程序运行的调度的核心。
内部会有高层调度器(DAGScheduler)和底层调度器(TaskScheduler),高层调度器把整个作业(Job)划分成几个小的阶段(Stage),底层调度器负责每个阶段内的任务(Task)该怎么去执行。由SchedulerBackend管理整个集群中为当前运行的应用程序分配的计算资源,分配的计算资源其实就是Executors,同时向Master注册当前的应用程序,如果注册成功,Master会向其分配资源。
下一步根据action级别的操作出发job,job中会有一系列的RDD,从后往前推,如果是宽依赖的话就划分为不同的Stage,划分完成后提交给底层调度器TaskScheduler,TaskScheduler拿到具体的任务的集合,然后根据数据的本地性原则,把任务发放到对应的Executor上去执行,当Executor运行成功或者出现状况的话都会向Driver进行汇报,最后运行完成之后关闭SparkContext,所创建的对象也会随之关闭。