sparkSpark在简书Spark之路

Spark结构图详解

2018-05-17  本文已影响26人  dpengwang

Spark架构

架构图如下:


spark架构.jpg

Spark结构主要分为四个部分:

  1. 用来提交作业的Client程序:client是什么呢,比如spark中提交程序的shell窗口,宏观上讲,是一台提交程序的物理机。负责将打包好的spark程序提交到集群中,提交完程序这个客户端客户端程序还发挥什么作用呢?yarn-client模式下,客户端提交程序后,在该客户端上又运行着一个driver程序,这个client的作用持续到spark程序运行完毕,而yarn-cluster模式下,客户端提交程序后就不再发挥任何作用,也就是说仅仅发挥了提交程序包的作用。

  2. 用来驱动程序运行的Driver程序:driver完成的工作主要是创建用户的上下文,这个上下文中包括很多控件比如DADScheduler、TaskScheduler等等,这些控件完成的工作也称为driver完成的。driver中完成RDD的生成,将RDD划分成有向无环图,生成task,接受master的指示将task发送到worker节点上进行执行等工作。

  1. 用来进行资源调度的ClusterManager: 整个集群的master,主要完成资源的调度,涉及一些调度算法,自带的资源管理器只支持FIFO调度,yarn和mesos还支持其他方式的调度算发。CM一边和driver打交道 ,一边和worker打交道,driver向CM申请资源,worker通过心跳机制向CM汇报自己的资源和运行情况,CM告诉driver应该向哪些worker发送消息, 然后driver把task发送到这些可用的worker上
  2. 用来执行程序的worker:worker用多个executor来执行程序

整个Spark集群采用的是master-slaver模型,master(CluserManager)负责集群整体资源的调度和管理并管理worker,worker管理其上的executor。

上一篇下一篇

猜你喜欢

热点阅读