美文网首页
spark工作流程

spark工作流程

作者: scott_alpha | 来源:发表于2019-10-12 13:58 被阅读0次
   首先所有的spark应用程序都离不开spark context和executor。executor负责执行任务,运行executor的节点称为worker。sparkcontext由用户程序启动,是程序运行的总入口,sparkcontext初始化过程中会分别创建DAGScheduler作业调度与TaskScheduler任务调度两级调度模块,sparkContext通过cluster manager与executor通信。
   RDD--》DAGScheduler--》DAGScheduler以taskset的形式转化为TaskScheduler--》worker
   其中DAGScheduler模块是基于任务调度的高层调度模块,它将作业拆分成具有依赖关系的多个调度阶段(通常根据shuffle来划分),每个阶段构建出一组具体的任务,然后以taskset的形式提交给任务调度模块具体执行。DAGScheduler负责任务的逻辑调度,而taskScheduler负责作业的物理调度。
    与DAGScheduler交互的接口有taskScheduler与SchedulerBackend。taskScheduler的实现主要用于与DAGScheduler交互,负责具体任务的调度与运行;SchedulerBackend的实现是与底层资源调度系统交互,配合taskScheduler实现具体任务的资源分配。在提交任务和更新状态时,taskScheduler都会调用backend的receiveOffers函数发起一次资源调度。
   Executor:任务的运行都在executor上,其为每一个任务创建一个taskRunner类,然后交给线程池运行。具体过程:创建线程-->创建任务列表-->创建taskRunner-->放入任务列表-->提交线程池运行。

Spark 任务调度之创建Executor
[https://blog.csdn.net/u011564172/article/details/69922241]

相关文章

网友评论

      本文标题:spark工作流程

      本文链接:https://www.haomeiwen.com/subject/bvvxmctx.html