MAPREDUCE服务 MRS-Yarn与其他组件的关系:Yarn和Spark组件的关系

时间:2024-04-01 09:39:25

Yarn和Spark组件的关系

Spark的计算调度方式,可以通过Yarn的模式实现。Spark共享Yarn集群提供丰富的计算资源,将任务分布式的运行起来。Spark on Yarn分两种模式:Yarn Cluster和Yarn Client。

  • Yarn Cluster模式

    运行框架如图1所示。

    图1 Spark on yarn-cluster运行框架

    Spark on yarn-cluster实现流程:

    1. 首先由客户端生成Application信息,提交给ResourceManager。
    2. ResourceManager为Spark Application分配第一个Container(ApplicationMaster),并在该Container上启动Driver。
    3. ApplicationMaster向ResourceManager申请资源以运行Container。

      ResourceManager分配Container给ApplicationMaster,ApplicationMaster和相关的NodeManager通讯,在获得的Container上启动Executor,Executor启动后,开始向Driver注册并申请Task。

    4. Driver分配Task给Executor执行。
    5. Executor执行Task并向Driver汇报运行状况。
  • Yarn Client模式

    运行框架如图2所示。

    图2 Spark on yarn-client运行框架

    Spark on yarn-client实现流程:

    在yarn-client模式下,Driver部署在Client端,在Client端启动。yarn-client模式下,不兼容老版本的客户端。推荐使用yarn-cluster模式。

    1. 客户端向ResourceManager发送Spark应用提交请求,ResourceManager为其返回应答,该应答中包含多种信息(如ApplicationId、可用资源使用上限和下限等)。Client端将启动ApplicationMaster所需的所有信息打包,提交给ResourceManager上。
    2. ResourceManager收到请求后,会为ApplicationMaster寻找合适的节点,并在该节点上启动它。ApplicationMaster是Yarn中的角色,在Spark中进程名字是ExecutorLauncher。
    3. 根据每个任务的资源需求,ApplicationMaster可向ResourceManager申请一系列用于运行任务的Container。
    4. 当ApplicationMaster(从ResourceManager端)收到新分配的Container列表后,会向对应的NodeManager发送信息以启动Container。

      ResourceManager分配Container给ApplicationMaster,ApplicationMaster和相关的NodeManager通讯,在获得的Container上启动Executor,Executor启动后,开始向Driver注册并申请Task。

      正在运行的Container不会被挂起释放资源。

    5. Driver分配Task给Executor执行。Executor执行Task并向Driver汇报运行状况。
support.huaweicloud.com/productdesc-mrs/mrs_08_005103.html