Spark的框架
1.组成(主从结构)
client
提交应用的客户端
master(ResourceManager)
主节点,standalone模式时,为master;yarn模式时,为ResourceManager
worker(NodeManager)
从节点,standalone模式时,为worker;yarn模式时,为NodeManager
driver
负责协调应用提交后的一个分布式应用程序,包含一下内容:
(1)SparkContext
spark上下文环境,负责应用程序的生命周期
(2)RDD DAG
弹性分布式数据集,spark的计算单元,一组弹性分布式数据集,可以形成有向无环图
(3)DAG scheduler
根据应用构建基于stage(阶段)的有向无环图,并将stage提交给task scheduler
(4)Task scheduler
将包和文件进行序列化,task任务传送给worker上的executor执行
(5)SparkEnv
线程级别的上下文
- SparkConf
配置信息
- BroadcastManager
存储广播变量和元数据信息
2.流程
(1)client提交应用给master
(2)master发送指令给worker,worker收到指令,创建driver
(3)driver向master申请资源,并将应用转化等RDD graph
(4)DAG scheduler将RDD graph转化成基于stage的有向无环图
(5)Task scheduler将基于stage的有向无环图图转化成task,将文件和包序列化,传送给对应的worker上的executor执行。
参考书籍:《循序渐进Spark》
爱人不亲,反其仁;治人不治,反其智;礼人不答,反其敬;行有不得,反求诸己