Spark运行原理(大白话笔记)

spark运行原理讲解的是spark在运行期间集群中的节点是怎么接收任务和处理任务的
Spark运行原理(大白话笔记)
具体的步骤如下:
1、在客户端通过命令提交一个job任务的时候,Driver就会启动相关的节点进行工作
2、客户端的driver会向master注册资源。

在这两步中,driver的角色实际上就是通知集群有任务了,开始干活,而具体启动任务的是master,master的角色就是分配做任务的资源,并且监控资源的使用情况,这就好比干个工程,master就是负责调度车辆,分配沙子水泥的用料和用量的,实际上就是调度工种的工作
3、master会让worker启动executor进行进行工作,worker实际上是不工作的,他就相当于一个公司,听从master的用料和用量来启动executor,真正干活的是executor
干活的进程是execitorBackend这个进,所以在我们提交任务后,会在worker节点上看到这个进程名字,他就是具体的工作进程,
4、ExecutorBackend会向driver注册,这一步的意义就是让driver知道是谁干活,diver知道了以后,就会找个调度经理SchedulerBackend来给ExecutorBackend分活干,这时候还会涉及一个DAGScheduler,他是把任务具体细分的一个功能,就是任务细分员,把任务划分成多个阶段(stage),然后以task的方式下发给ExecutorBackend
Driver相当于项目经理,DAGScheduler相当于项目小组长,driver接活,让DAGScheduler划分任务,然后给大哥,这时候还会涉及一个DAGScheduler,他是把任务具体细分的一个功能,就是任务细分员,把任务划分成多个阶段(stage),然后以task的方式下发给ExecutorBackend分活干,那么在这个过程中,driver这个项目经理就是个动嘴的,master和worker是监控资源的,看看哪辆车不好用了给你换一辆,那个工人不干活了给你换一个,真正干活的就是SchedulerBackend(调度员),DAGScheduler(项目组长),ExecutorBackend(工人)
其实整个spark的调度和平时的工地施工、项目开发流程都是类似的,说白了就是有人监工、有人划分任务、有人分配任务、有人干活

猜你喜欢

转载自blog.51cto.com/14572091/2487218