首页  

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简介

大数据学习路线