Spark架构

架构图如下:


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节点上进行执行等工作。

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


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

友情链接
ioDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信