Spark中的Executor与YARN中的Application Master是否承担相同工作?
Spark Executor与YARN Application Master的工作差异
两者完全不做相同的工作,职责划分非常清晰:
YARN Application Master(AM)
- 是YARN集群层面负责整个Spark应用生命周期管理的核心角色
- 主要负责:向YARN的ResourceManager申请集群资源(Container)、为Spark应用分配Executor进程、监控Executor运行状态(故障时触发重启)、应用完成后向ResourceManager注销并释放所有占用资源
- 在Spark on YARN的cluster模式下,AM还会兼任Spark的Driver角色——负责生成任务DAG图、调度任务、向Executor分发具体计算任务;但client模式下Driver运行在本地机器,AM仅负责YARN层面的资源管理工作
Spark Executor
- 是Spark体系里实际执行计算任务的工作节点
- 主要职责:接收Driver(或兼任Driver的AM)下发的Task、执行具体的数据计算操作(如map、join、聚合等)、将需要复用的计算结果缓存到本地内存或磁盘、实时向Driver汇报任务执行进度与结果
简单来说,AM(或Driver)是「指挥调度」的角色,Executor是「落地干活」的角色,两者工作内容完全不同。
内容的提问来源于stack exchange,提问作者Raj Nandini Padhy
相关产品推荐
相关产品推荐

