Spark的重要组件和基本工作流程

来源:互联网 发布:php菜鸟教程 编辑:程序博客网 时间:2024/05/21 22:56
Spark的几大组件:Driver,Master,Worker,Executor,Task

基本工作流程为:Driver向Master节点提交我们编写的Spark程序进行应用的注册,并且对集群进行监控。

Master在接收到程序注册后,会发送请求给Worker进行资源的调度和分配,即要求worker启动相应的Executor,资源分配即Executor的分配。

Woker主要任务是用自己的内存存储RDD(部分或全部的partition),并启动其他线程和进程对这些RDD进行处理和计算。其在受到Master的请求后,会为Spark程序启动Executor进程,并且会对这些Executor在Driver上进行反注册,这样Driver就知道有哪些Executor是为它进行服务的了。

当Driver上被注册了一些Executor后,就可以启动Spark程序,首先是创建初始RDD,在HDFS 读取数据源,数据被读取到多个Worker节点上(存储到内存中形成分布式数据集,即初始RDD)。

Driver根据我们对RDD定义的操作(map,reduce等),形成相应的task并提交到Worker上启动的Executor进程上,Executor接收到后启动相应的task线程,对RDD的partition进行算子,形成新的RDD的partition。

Driver根据其他的算子提交新的task继续对新的RDD进行操作处理。