Spark简介
Apache Spark是用于大规模数据处理的统一分析引擎,基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量硬件之上,形成集群。
Spark源码从1.x的40w行发展到现在的超过100w行,有1400多位大牛贡献了代码。整个Spark框架源码是一个巨大的工程。下面我们一起来看下spark的底层执行原理。
Spark运行流程

具体运行流程如下:
- SparkContext 向资源管理器注册并向资源管理器申请运行Executor
- 资源管理器分配Executor,然后资源管理器启动Executor
- Executor 发送心跳至资源管理器
- SparkContext 构建DAG有向无环图
- 将DAG分解成Stage(TaskSet)
- 把Stage发送给TaskScheduler
- Executor 向 SparkContext 申请 Task
- TaskScheduler 将 Task 发送给 Executor 运行
- 同时 SparkContext 将应用程序代码发放给 Executor
- Task 在 Executor 上运行,运行完毕释放所有资源
1. 从代码角度看DAG图的构建
Val lines

本文详细解析Apache Spark的运行流程,包括DAG图的构建、Stage划分、任务调度、Executor管理以及Spark运行架构特点。从SparkContext申请Executor,到DAG的窄宽依赖划分,再到Stage提交、任务执行与结果获取,深入理解Spark的大数据处理机制。
最低0.47元/天 解锁文章
728

被折叠的 条评论
为什么被折叠?



