Spark运行架构
标准Master-slave结构 spark框架有两个主要的组件,就是Driver和Executor。
Driver[驱使整个应用运行起来的程序]
1.执行spark任务中的main方法,负责实际代码的执行工作; 2.将用户提交的应用转化为job作业; 3.在Executor之间调度Task任务; 4.跟踪Executor的执行情况; 5.通过webUI查看作业运行情况
Executor[worker节点中的一个JVM进程][计算节点]
1.负责spark作业中具体Task任务的运行,并将结果返回给Driver进程 2通过自身的Block Manager块管理器为用户提交的应用中要求缓存的RDD提供内存式存储,由于RDD是直接缓存在Executor进程中的,所以任务运行期间可充分利用缓存数据加速计算。
Spark构建在Yarn之上,提交应用程序时应该要包括ApplicationMaster;RM和Driver之间靠ApplicationMaster解耦。