02-spark调度模式(粗粒度模式和细粒度模式)

1、Spark调度模式

  Spark是一个开源框架,它支持两种调度模式,一种是以yarn为代表的粗粒度模式,和另一种细粒度模式。

2、粗粒度模式

  每个应用程序的运行环境由一个Driver和若干个Executor组成,其中,每个Executor占用若干个资源,内部可运行多个Task,应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源(即使不用),最后程序运行结束之后,回收这些资源

3、细粒度模式

  与粗粒度模式一样,应用程序启动时,辉县启动executor,但每个executor占用的资源仅仅是自己运行所需的资源,不需要考虑将来要运行的任务,之后,cluster manager会为每个task根据自身需要动态分配资源。单个task运行完后就马上释放对应的资源。每个Task完全独立,优点是便于资源控制和隔离,但缺点也很明显,作业运行延迟大(重新分配task的资源是比较耗时的)

4、yarn上的粗粒度模式

  yarn现在只支持粗粒度模式。

  yarn上的ResourceManager负责将集群的资源分配给各个应用使用,而资源分配和调度的基本单位是Container,其中封装了集群资源(CPU,内存、磁盘等),每个任务只能在Container中运行,并且只是用Container中的资源。那么就算Spark的Executor用不了这么多资源,也会占用这么多资源,这就是粗粒度模式。

猜你喜欢

转载自www.cnblogs.com/lihaozong2013/p/10582653.html
今日推荐