Spark Core包含Spark的基本功能,如内存计算、任务调度、部署模式、故障恢复、存储管理等,SparkCore底层是RDD,即弹性分布式分布式数据集,底层又分为多个partition(分区),它本身是不存数据的,只是计算的时候数据存在于RDD中,RDD的产生意味着调用了算子。这样一系列通过调用算子生成的RDD,最终会生成DAG有向无环图。

 在将sparkcore之前我们先看看spark的运行架构图Spark 框架的核心是一个计算引擎,整体来说,它采用了标准 master-slave 的结构(主从结构)。 展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master(比较hdfs中的namenode和datanode),负责管理整个集群中的作业任务调度。图形中的 Executor 则是 slave,负责实际执行任务。

sparkcore sparkcore模块是spark最核心的模块_spark

不难看出,spark 和核心处理就是dirver和executor:

Driver


Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。

Driver 在 Spark 作业执行时主要负责:

➢ 将用户程序转化为作业( job )

➢ 在 Executor 之间调度任务 (task)

➢ 跟踪 Executor 的执行情况

➢ 通过 UI 展示查询运行情况

实际上,我们无法准确地描述 Driver 的定义,因为在整个的编程过程中没有看到任何有关

Driver 的字眼。所以简单理解,所谓的 Driver 就是驱使整个应用运行起来的程序,也称之为

Driver 类。


Executor


Spark Executor 是集群中工作节点( Worker )中的一个 JVM 进程,负责在 Spark 作业

中运行具体任务( Task ),任务彼此之间相互独立。 Spark 应用启动时, Executor 节点被同

时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。如果有 Executor 节点发生了

故障或崩溃, Spark 应用也可以继续执行,会将出错节点上的任务调度到其他 Executor 节点

上继续运行。

Executor 有两个核心功能:

➢ 负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程

➢ 它们通过自身的块管理器( Block Manager )为用户程序中要求缓存的 RDD 提供内存

式存储。 RDD 是直接缓存在 Executor 进程内的,因此任务可以在运行时充分利用缓存

数据加速运算。

sparkcore里面我们主要用到的就是RDD弹性分布式数据集所以我们主要学习RDD