一.粗粒度资源调度:典型:Spark
在Application执行之前,会将所有的资源(Executor)申请完毕,直接资源申请完毕后,才会进行任务调度,直到最后一个task执行完毕,才会释放掉这部分资源
优点:每一个task执行之前不需要自己去申请资源,直接使用资源就可以,那么每一个task执行时间也就缩短了,stage执行时间也缩短了,job的执行时间也就缩短了Application执行时间也就缩短了。
缺点:一直到最后task执行完毕才会释放资源,集群资源不能充分利用
二.细粒度资源调度:典型:MR
在Application之行之前不需要先将资源申请完毕,而是直接进行任务的资源调度,每一个task在执行之前自己去申请资源,申请到了就执行,申请不到资源就继续申请,每一个task执行完毕后,都会将自己申请的那部分资源释放掉
优点:充分利用集群的资源情况
缺点:task执行时间变长了