Spark 的相关概念我们整理清楚了,接下来就是让 Spark “跑起来”,让我们看看它是怎么运行的,包括它的任务提交和执行流程,执行过程中的内存管理机制,以及 SparkSQL 的执行和优化。掌握执行流程相关的内容对 Spark 任务的 debug 和优化有很大帮助,可以帮助我们迅速定位到哪个执行的环节出了问题,或者哪里出现了瓶颈,解决此类问题通常是大数据工程师的日常工作,所以这不仅仅是对知识点的考察,也是对工作能力的考察。
本篇面试内容划重点:内存动态占用,Catalyst,优化方法
任务执行流程
Spark 任务的提交和执行离不开和资源管理器的交互,此处抽象了资源管理器,没有区分 on Standalone 还是 on Yarn,因为调度架构是类似的。(Yarn 相关任务处理流程后续会有专门章节说明)。
- Client 客户端提交运行 Spark Application 应用,应用中创建 SparkContext,由它负责与 ClusterManager(资源管理中心) 通信,进行 Executor 资源的申请。
- ClusterManager 在健康的