经过前面文章的SparkContext、DAGScheduler、TaskScheduler分析,再从总体上了解Spark Job的调度流程
1、SparkContext将job的RDD DAG图提交给DAGScheduler;
2、DAGScheduler将job分解成Stage DAG,将每个Stage的Task封装成TaskSet提交给TaskScheduler;窄依赖以pipeline方式执行,效率高;
3、TaskScheduler将TaskSet中的一个个Task提交到集群中去运行;推测任务执行;遇到shuffle丢失的汇报给DAGScheduler,让DAGScheduler重新提交Stage;
4、存储和处理block是由blockmanager来处理的(后续文章描述);
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步