spark 组成及运行大概 流程
Driver:运行应用的的main函数,提交任务,下发计算任务。
ClusterManager:资源管理,在独立的模式(standalone)模式下是master ,在yarn是ResouceManager
Work:计算工作节点,上报自己的资源情况,启动和管理Executer
Executor:执行器,是某个应用运行在work节点上的一个进程,负责执行task任务(工作线程)
Task:被发送到某个Executor上的工作单元,跟MR中的MapTask和ReduceTask概念一样,是运行Application的基本单位。
运行大概流程:
1.Driver端提交应用,并向master申请资源
2.master根据各个work节点上汇报的资源,在相应的节点上启动executor,并将资源参数传递给Driver端
3.启动executor进程会主动和Driver端进行通信,Driver端根据代码的执行情况,产生多个task,并发送给Executor
4.Executor启动task做真正的计算,每个task得到资源后,对相应的数据分片做计算逻辑