网站首页 > 技术文章 正文
Application:用户编写的Spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点上运行的Executor代码,在执行过程中有一个或多个作业组成。
Driver:一个Spark作业运行时会启动一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage,并调度Task到Executor上。Spark中的Driver即运行Application的main函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。当Executor运行完毕后,Driver负责将SparkContext关系。 Cluster Manager:在集群上获取资源的外部服务,目前支持一下几种
- Standalone:Spark原生的资源管理,由Master负责资源的管理。
- Hadoop Yarn:有Yarn中的ResourceManager负责资源的管理。
- Mesos:由Mesos中的Mesos Master负责资源的管理。
Master:Spark有Master和Worker。Master是集群的领导者,负责管理集群资源,接受Client提交的作业,以及向Worker发送命令。在Spark on Yarn模式中指得是NodeManager节点。
Worker:集群中的Worker,执行Master发送的指令,来具体分配资源,并在这些资源中执行任务。
Executor:真正执行作业的地方。Executor分布在集群中的Worker上,每个Executor接受Driver的命令来加载和运行Task,一个Executor可以执行一到多个Task。
SparkContext:是程序运行调度的核心,由高层调度器DAGScheduler划分程序的每个阶段,底层调度器TaskScheduler划分每个阶段的具体任务。SchedulerBackend管理整个集群,为正在运行的程序分配计算资源Executor。负责与ClusterManager通信,进行资源的申请、任务的分配和监控等。
DAGScheduler:负责高层调度,划分stage并生成程序运行的有向无环如。
TaskScheduler:负责具体stage内部的底层调度,具体task的调度、容错等。
Job:是Top-level的工作单位,每个Action算子都会触发一次Job,一个Job可能包含一个或多个Stage。
Stage:是用来计算中间结果的Tasksets。Tasksets中的Task逻辑对于同一个RDD内的不同partition都一样。Stage在Shuffle的地方产生,此时下一个Stage要用到上一个Stage的全部数据,所以要等到上一个Stage全部执行完才能开始。Stage有两种:ShuffleMapStage和ResultStage,除了最后一个Stage是ResultStage外,其他的Stage都是ShuffleMapStage。ShuffleStageMap会产生中间结果,以文件的方式保存在集群里,Stage经常被不同的Job共享,前提是这些Job重用了同一个RDD。
Task:任务执行的工作单元,每个Task会被发送到一个节点上,每个Task对应RDD的一个partition。
RDD:是不可变的、Lazy级别的、粗粒度(数据集级别而不是单个数据级别的)数据集合,包含了一个或多个数据分片,即partition。
算子:Spark程序中有两种级别的算子:Transformation和Action。Transformation算子会有DAGScheduler划分到pipeline中,是Lazy级别的,不会触发任务的执行。Action算子会触发Job来执行pipeline中的运算。
猜你喜欢
- 2024-10-12 大佬用10小时就把Spark讲完了,附6大技术文档
- 2024-10-12 浅析图数据库 Nebula Graph 数据导入工具——Spark Writer
- 2024-10-12 Spark Streaming 和 Flink 谁是数据开发者的最爱?
- 2024-10-12 分享几点 Spark Streaming 调优实践经验
- 2024-10-12 大数据学习之计算天下——SPARK的那些事
- 2024-10-12 第二篇|Spark core编程指南 spark编程软件
- 2024-10-12 Spark计算引擎 spark是基于什么计算引擎
- 2024-10-12 Spark Shuffle机制 sparkshuffle原理
- 2024-10-12 一文带你了解SparkStreaming窗口函数
- 2024-10-12 深度预警:Spark运行原理 简述spark的运行架构和原理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)