Spark 核心概念一

Spark 核心概念图:

Driver:是一个spark 作业运行的启动的一个Driver进程,作业的主进程,负责作业解析、生成stage,并调度Task到Executor上。

SparkContext: 程序运行的核心,有DAGScheduler 划分每个阶段,底层TaskScheduler 划分给个阶段的具体任务。SchedulerBackend 管理整个集群中为正在运行的程序分配的计算资源Executor。

Executor:  真正执行作业的地方,Executor 分布在集群中的worker上,每个Executor负责接收Driver的命令来加载和运行Task。一个Executor 可以执行多个Task。

DAGScheduler: 负责高层调度,划分stage并生成程序运行的有向无环图。

TaskScheduler:负责具体stage的内部调度,具体Task的调度、容错等。

Job:Top-level 的工作单位,每个action 算子都会触发一次job,一个job可能包含一个或者多个stage。

Stage: 分为ShuffleMapStage 和 ResultStage ,除了最后一个stage 是ResultStage外,其他都是ShuffleMapStage。

Task: 任务执行的最小单位,Task 会发送到一个节点上,一个Task 对应RDD的一个partition。

RDD:不可变、Lazy级别、粗粒度。

---

RDD 五大特性:

 * Internally, each RDD is characterized by five main properties:
 *
 *  - A list of partitions
 *  - A function for computing each split
 *  - A list of dependencies on other RDDs
 *  - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
 *  - Optionally, a list of preferred locations to compute each split on (e.g. block locations for
 *    an HDFS file)

DataSet 和 DataFrame

DataSet:  是懒加载的,只有在行动算子(Action)执行的,才会进行计算。

                DataFrame是DataSet[Row] 的别名。

                

发布了61 篇原创文章 · 获赞 1 · 访问量 639

猜你喜欢

转载自blog.csdn.net/u012842247/article/details/103882424