spark运行模式及集群角色
所属分类 spark
浏览量 879
spark运行模式
spark集群角色
spark其它核心概念
spark运行模式
local 本地模式 常用于本地开发测试,分为local单线程和local-cluster多线程模式
standalone 集群模式 独立模式,spark资源调度管理框架,master/salve结构
yarn 集群模式 在yarn资源管理器框架上运行,由yarn负责资源管理,spark负责任务调度和计算
mesos 集群模式 在mesos资源管理器框架上运行,由mesos负责资源管理,spark负责任务调度和计算
k8s 集群模式 在k8s上运行
spark集群角色
集群管理节点cluster manager
工作节点worker
执行器executor
驱动器driver
应用程序application
Cluster Manager
集群管理器,Master进程,资源管理
部署模式 local standalone yarn K8S等
worker
工作节点,用于执行任务,主要工作职责
向cluster manage r注册汇报自身的cpu,内存等信息
在spark master作用下创建并启动executor
spark master将任务Task分配给worker节点上的executor并执行
同步资源信息和executor状态信息给cluster manager
yarn 模式下运行worker节点一般指的是NodeManager节点
standalone模式下一般指的是slave节点
executor
执行计算任务的组件,是application运行在worker上的一个进程
负责Task的运行,将数据保存在内存或磁盘存储中,也能够将结果数据返回给Driver
Application
application是Spark API 编写的应用程序
包括实现Driver功能的代码和在程序中各个executor上要执行的代码
一个application由多个job组成
应用程序的入口 main方法
Driver
驱动器节点,运行Application中main函数并创建SparkContext的进程
application通过Driver 和Cluster Manager及executor进行通讯
可以运行在application节点上
也可以由application提交给Cluster Manager,再由Cluster Manager安排worker进行运行
Driver节点也负责提交Job,并将Job转化为Task,在各个Executor进程间协调Task的调度
sparkContext
是Spark所有功能的主要入口点
核心作用是初始化spark应用程序所需要的组件,同时还负责向master程序进行注册等
spark其它核心概念
RDD
弹性分布式数据集
是一种容错的 可以被并行操作的元素集合
是Spark对数据处理的一种基本抽象
可以通过一系列的算子对rdd进行操作
主要分为Transformation和Action两种操作
Transformation(转换)
对已有的RDD进行换行生成新的RDD
转换过程采用惰性计算机制,不会立即计算出结果
常用方法有map filter flatmap等
Action(执行)
对数据执行计算产生结果,并将结果返回Driver或者写入外部存储
常用方法有reduce collect saveAsTextFile等
DAG 有向无环图 使用 DAG 描述计算逻辑
主要分为DAG Scheduler 和Task Scheduler
DAG Scheduler
DAG Scheduler 是面向stage的高层级的调度器
DAG Scheduler把DAG拆分为多个Task,每组Task都是一个stage
解析时以shuffle为边界进行反向构建的
每当遇见一个shuffle,spark就会产生一个新的stage
接着以TaskSet的形式提交给底层的调度器(task scheduler)
每个stage封装成一个TaskSet
DAG Scheduler需要记录RDD被存入磁盘物化等动作
同时需要Task寻找最优等调度逻辑
以及监控因shuffle跨节点输出导致的失败
Task Scheduler
负责每一个具体任务的执行 主要职责
任务集的调度管理
状态结果跟踪
物理资源调度管理
任务执行
获取结果
Job
有多个stage构建的并行的计算任务
job由spark的action操作来触发
在spark中一个job包含多个RDD以及作用在RDD的各种操作算子
stage
DAG Scheduler会把DAG切割成多个相互依赖的Stage
划分Stage的一个依据是RDD间的宽窄依赖
对Job中的所有操作划分Stage时,一般会按照倒序进行
即从Action开始,遇到窄依赖操作,则划分到同一个执行阶段
遇到宽依赖操作,则划分一个新的执行阶段
且新的阶段为之前阶段的parent,然后依次类推递归执行
child Stage需要等待所有的parent Stage执行完之后才可以执行
Stage之间根据依赖关系构成了一个大粒度的DAG
在一个Stage内,所有的操作 串行 Pipeline ,由一组Task完成计算
TaskSet Task
TaskSet 可以理解为一种任务,对应一个stage,是Task组成的任务集
一个TaskSet中的所有Task没有shuffle依赖可以并行计算
Task是spark中最独立的计算单元,由Driver Manager发送到executer执行
通常情况一个task处理spark RDD一个partition
Task分为ShuffleMapTask和ResultTask两种
位于最后一个Stage的Task为ResultTask 其他阶段的属于ShuffleMapTask
Spark核心设计思想
spark 原理及特点
上一篇
下一篇
Flink Watermark 机制
Spark核心设计思想
spark 原理及特点
spark作业运行流程
Zeppelin简介
大数据学习路线