Spark中driver、executor、master、worker的关系

Driver、executor是计算相关的组件

master、worker是资源相关的组件

master和worker是物理节点,driver和executor是进程

driver:

Spark驱动器节点,用于执行Spark任务中的main方法,负责实际代码的执行工作。

Driver在Spark作业执行时主要负责:

将用户程序转化为作业(job)

在Executor之间调度任务(task)

跟踪Executor的执行情况

通过UI展示查询运行情况

实际上我们无法准确地描述Driver的定义,因为在整个编程过程中没有看到任何有关Driver的字眼。所以简单理解,所谓的Driver就是驱使整个应用运行起来的程序,也成为Driver类。

Executor:

Spark Executor是集群中工作节点(Worker)中的一个JVM进程,是整个集群中的专门用于计算的节点。

在提交应用中,可以提供参数指定计算节点的个数,以及对应的资源(工作节点Executor的内存大小和使用的虚拟CPU核(core)数量)。

负责在Spark作业中运行具体任务(Task),任务彼此之间相互独立。

Spark应用启动时,Executor节点被同时启动,并且始终伴随着整个Spark应用的生命周期而存在。

如果有Executor节点发生了故障或崩溃,Spark应用也可以继续执行,会将出错节点上的任务调度到其他Executor节点上继续运行。

核心功能:

负责运行组成Spark应用的任务,并将结果返回给驱动器

它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的RDD提供内存式存储。RDD是直接缓存在Executor进程内的,因此任务可以在运行时充分利用缓存数据加速运算。

Master:

Spark集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master和Worker,这里的Master是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于Yarn环境中的RM,而Worker也是进程,一个Worker运行在集群中的一台服务器上,由Master分配资源对数据进行并行的处理和计算,类似于Yarn环境中的NM。

ApplicationMaster

Hadoop用户向Yarn集群提交应用程序时,提交程序中应包含ApplicationMaster,用于向资源调度申请执行任务的资源容器Container,运行用户自己的程序任务job,监控整个任务的执行,跟踪整个任务的状态,处理任务失败等异常情况。

并行度parallelism:

在分布式计算框架中一般都是多个任务同时执行,由于任务分布在不同的计算节点进行计算,所以能够真正地实现多任务并行执行,我们将整个集群并行执行任务的数量成为并行度,这个取决于框架的默认配置,应用程序也可以在运行过程中动态修改。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值