Spark的核心概念

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42246689/article/details/86370523

大多数应该都要有实际写过 Spark 程序和提交任务到 Spark 集群后才有更好的理解 

1、Application:表示你的应用程序,包含一个 Driver Program 和若干 Executor 

2、Driver Program:Spark 中的 Driver 即运行上述 Application 的 main()函数并且创建 SparkContext,其中创建 SparkContext 的目的是为了准备 Spark 应用程序的运行环境。由 SparkContext 负责与 ClusterManager 通信,进行资源的申请,任务的分配和监控等。程序执 行完毕后关闭 SparkContext 

3、ClusterManager:在 Standalone 模式中即为 Master(主节点),控制整个集群,监控 Worker。 在 YARN 模式中为资源管理器。 

4、RDD:Spark的基本计算单元,一组RDD可形成执行的有向无环图RDD Graph

5、DAGScheduler::根据 Job 构建基于 Stage 的 DAG,并提交 Stage 给 TaskScheduler,其划分 Stage 的依据是 RDD 之间的依赖关系:宽依赖,也叫 shuffle 依赖 

6、SparkContext:整个应用的上下文,控制应用程序的生命周期,负责调度各个运算资源, 协调各个 Worker 上的 Executor。初始化的时候,会初始化 DAGScheduler 和 TaskScheduler 两个核心组件。 
 

7、TaskScheduler:将 TaskSet 提交给 Worker(集群)运行,每个 Executor 运行什么 Task 就 是在此处分配的。 
 

8、Worker::集群中可以运行 Application 代码的节点。在 Standalone 模式中指的是通过 slave 文件配置的 worker 节点,在 Spark on Yarn 模式中指的就是 NodeManager 节点。 

9、Executor:某个 Application 运行在 Worker 节点上的一个进程,该进程负责运行某些 task, 并且负责将数据存在内存或者磁盘上。在 Spark on Yarn 模式下,其进程名称为 CoarseGrainedExecutorBackend,一个 CoarseGrainedExecutorBackend 进程有且仅有一个 executor对象,它负责将Task包装成taskRunner,并从线程池中抽取出一个空闲线程运行Task, 这样,每个 CoarseGrainedExecutorBackend 能并行运行 Task 的数据就取决于分配给它的 CPU 的个数。 

10、Stage:每个 Job 会被拆分很多组 Task,每组作为一个 TaskSet,其名称为 Stage 
 
11、Job:包含多个 Task 组成的并行计算,是由 Action 行为触发的 
 
12、Task:在 Executor 进程中执行任务的工作单元,多个 Task 组成一个 Stage 
 
13、SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。SparkEnv 内创建并包含 如下一些重要组件的引用。 MapOutPutTracker:负责 Shuffle 元信息的存储。

BroadcastManager:负责广播变量的控制与元信息的存储。

BlockManager:负责存储管理、创建和查找块。

MetricsSystem:监控运行时性能指标信息。

SparkConf:负责存储配置信息。 

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/86370523