了解 Spark中的master、worker和Driver、Executor

master和worker是物理节点,是在不同环境部署模式下和资源相关的两大内容
Driver和executor是进程,是在spark应用中和计算相关的两大内容

1、master和worker节点
master节点常驻master守护进程,负责管理worker节点,并且会从master节点提交应用。

worker节点常驻worker守护进程,会与master节点进行通信,并且管理executor进程。

在搭建spark集群时,就已经设置好了master节点和worker节点,一个集群中可以有多个master节点和多个worker节点。一台pc机器可以同时作为master和worker节点【例如:有四台机器,就可以选择一台机器做masker节点,剩下三台设置为worker节点,也可以把四台都设置为worker节点,这种情况下,有一台机器既是master节点又是worker节点。】

2、driver和executor进程
driver:
根据不同的部署模式,driver可以运行在master上,也可以运行在worker上。

driver进程就是应用的main函数并且会构建sparkContext对象,当提交应用后,就会启动一个对应的driver进程,driver本身会根据设置的参数占用一定的资源,主要是 cpu core和memory。

driver首先会向集群管理者(standalone、yarn、mesos)申请spark应用所需的资源,也就是executor,然后集群管理者会根据spark应用所设置的参数在各个worker上分配一定数量的executor,每个executor都会占用一定数量的cpu和memory。在申请到应用所需的资源后,driver就能开始调度和执行编写的应用代码了。

driver进程会将我们编写的spark应用代码拆分成多个stage,每个stage会执行一部分代码片段,并为每个stage创建一批tasks,然后再将这些tasks分配到各个executor中执行。

executor:
executor进程宿主在worker节点上,一个worker可以有多个executor。每个executor会持有一个线程池,每个线程可以执行一个task。executor执行完task后,可以将结果返回给driver

每个executor执行的task都是属于同一个应用的。此外executor还有一个功能就是为应用程序中要求缓存的RDD提供内存式存储,RDD是直接缓存在executor进程内的,也是因此,任务task可以在运行时充分利用缓存数据加速运算。

参考资料:
Spark中master、worker、executor和driver的关系
Spark中的Driver和Executor详解及相关调优

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值