前言:
我们为什么要这样写程序?为何要这样运行程序?以及程序运行背后发生了什么?
关于Spark Runtimre
Driver:
运行程序时候,具有Main方法,并且创建了SparkContext的一个对象,他是程序运行调度的调度器,在程序运行中,Driver端的主要代码为SparkConf 和SparkContext两部分如下图所示:
Worker:
运行程序时候,Worker端是集群中具体运行操作代码的节点,他不运行程序的代码,管理当前节点内存CPU等计算资源的使用状况并接收master指令来分配具体资源Executor(在新的进程中分配),程序计算运行在Executor中。
Executor:
Executor是运行在worker节点上一个进程里面的对当前应用程序处理所开启的一个对象,这个对象负责了task的执行,计算通过线程池内线程并发执行和复用的方式。
注:本学习笔记来自DT大数据梦工厂