1、Spark部署模式详解
在介绍部署模式之前,首先需要知道两个重要的角色:Driver(驱动器)、Executor(执行器)。
1、1Driver(驱动器)
Spark驱动器是执行开发程序中的main方法的进程。它负责开发人员编写的用来创建SparkContext、创建RDD、以及进行RDD的转化(transform)操作和行动(action)操作代码的执行。如果你是用的spark shell,当你启动spark shell的时候,系统后台自启一个Spark驱动器程序,就是在Spark shell中预加载的一个叫做SC的SparkContext对象(在分析源码的时候,关注SC能够帮助分许Driver的各个阶段)。如果驱动器程序终止,那么Spark应用也就结束了。
主要负责:
- 将用户程序转化成job(负责job的分配和Submit)
- 监控和调度Executor的运行
- UI展示运行状况
1、2Executor(执行器)
Spark Executor是一个工作进程,负责在Spark作业中运行任务,任务间相互独立,负责Spark的算子执行。Spark应用启动时,Executor节点被同时启动,并且伴随着整个Spark应用的生命周期而存在,如果有Executor节点发生故障或崩溃,Spark应用也可以继续执行,会将出错节点上的任务调度