应用程序的执行流程为:
- 写好的应用程序,打包成jar文件。然后通过客户端上传到集群。根据Driver的配置模式,要么运行在客户端,要么由master指定worker启动driver进程,并对整个应用程序进行监控和管理。接着,配置一些上下文环境。然后顺序执行代码。
- RDD的算子包括两大类:一是转换算子,二是行动算子。只有Action算子才会触发Job的提交,也就是说,Spark采用的是惰性机制,在碰到行动算子的时候,才提交作业。接着生成RDD有向无环图DAG,由DAG调度器DAGScheduler转化为阶段StageDAG,每个阶段Stage中产生相应的任务Task集合,任务调度器TaskScheduler将任务分发到worker上的Executor执行。每个任务对应一个数据块,使用用户定义的函数处理数据块。如图:
应用提交与执行方式 Driver配置(deploy-mode)模式包含以下两种方式。 •Driver进程运行在客户端,对应用进行管理监控。(为默认项) •主节点指定某个Worker节点启动Driver,对应用进行监控管理。
图4-4 Spark Driver位于Client
图4-5 Spark Driver位于Worker节点的应用提交与执行