由于数据处理过程中需要计算资源(CPU、内存)和计算模型(逻辑),Spark框架在执行时,先申请计算资源,接着将应用程序的数据处理逻辑分解成一个个的计算任务task,然后将task分发到已经分配资源的计算节点上,按照指定的计算模型进行数据计算,最后得到计算结果。
在Yarn环境中,Spark执行过程:
1、启动Yarn集群环境。ResourceManager用于资源管理,NodeManager用于具体计算。
2、Spark通过申请资源创建调度节点和计算节点。均运行在NodeManager上。
3、Spark框架根据需求在Driver过程中将计算逻辑根据分区划分为不同任务。
Driver主要用于task的调度。多个RDD之间存在依赖关系,根据这些关联生成不同的task,然后task进入任务队列TaskPool中等待被调度执行。
4、Driver根据计算节点状态和首选任务配置等将task发送到对应的计算节点进行计算。