Spark调度模型
调度模型的好坏,是由底层的抽象模型所决定的,spark的底层抽象是RDD spark调度模型系统,分为 底层调度模型(TASKscheduler)和高层调度模型(DAGscheduler) 调度过程 1. application driver 发出请求,这个application首先创建sparkconf和 sparkcontext对象, 在sc对象中 TASKscheduler,DAGscheduler以及schedulerbackend对象, 并 向master注册 当前程序并 申请计算资源 (注意,如果底层是用yarn来进行资源管理和调度,那么会向yarn resource manager去申请计算资源,standalone模式下,具体的实现是taskschedulerimpl来完成的) 2. 这时候master会根据当前它掌握的worker的资源并通过心跳看worker是不是存活的),为application 分配appid和计算资源,并通知对应的worker按需求启动executor 分配计算资源的依据,来自spark-env.sh,default.sh,spark-submit的参数,和程序中sparkConf配置的参数 worker机器上会生成一个worker进程,通过一个proxy启动executorbackend进程,这个进程会启动executor