spark作业运行流程
所属分类 spark
浏览量 905
spark 作业运行流程
spark RDD迭代过程
yarn资源管理器介绍
spark程序在yarn上执行流程
spark 作业运行流程
spark应用以进程集合为单位在分布式集群上运行
通过driver程序的main方法创建sparkContext对象与集群交互
sparkContext 向 cluster Manager申请CPU,内存等计算资源
cluster Manager 分配应用执行需要的资源,在worker节点创建executor
sparkContext 将程序代码和task任务发送到executor上执行
代码可以是编译成的jar包或者python文件等
接着sparkContext收集结果到Driver端
spark RDD迭代过程
sparkContext
创建RDD 计算RDD间的依赖 形成DAG
DAGScheduler
将DAG划分为多个stage,并将stage对应的TaskSet提交到集群管理中心
stage的划分依据是RDD中的宽窄依赖
spark遇见宽依赖就会划分为一个stage
每个stage中包含来一个或多个task任务
避免多个stage之间消息传递产生的系统开销
taskScheduler
通过集群管理中心为每一个task申请资源并将task提交到worker节点执行
worker上的executor执行具体的任务
yarn资源管理器介绍
没有yarn前,每个分布式框架都要跑在一个集群上面
Hadoop Spark 跑在独立的集群上
整个集群的资源利用率低,且管理起来麻烦
yarn 分布式资源管理和任务管理
ResourceManager NodeManager ApplicationMaster
ResourceManager
主要负责集群的资源管理,监控和分配
NodeManager
负责节点的维护,执行和监控task运行状况
通过心跳向ResourceManager汇报资源使用情况
yarn资源管理器的每个节点都运行一个NodeManager,是ResourceManager的代理
ResourceManager 主节点宕机后,连接备用节点
ApplicationMaster
负责具体应用程序的调度和资源的协调
与ResourceManager协商进行资源申请
ResourceManager以container形式将资源分配给application运行
同时负责任务的启停
container
资源抽象,封装节点资源信息(cpu 内存 磁盘 网络等)
yarn将任务分配到container上运行
该任务只能使用container描述的资源,实现各个任务间资源隔离
spark程序在yarn上执行流程
spark on yarn 分为两种模式
yarn-client模式 和 yarn—cluster模式
一般用 yarn-cluster模式
yarn-client模式
driver在客户端本地执行
Driver会与yarn集群中的Executor进行大量的通信
yarn-cluster模式
Driver运行在Yarn集群中某一台NodeManager中
每次提交任务 Driver所在的机器是随机的
任务提交后不能看日志,只能通过yarn查看日志
yarn-cluster运行模式
client 向yarn提交应用
包含ApplicationMaster程序
启动ApplicationMaster的命令
需要在Executor中运行的程序等
ApplicationMaster向ResourceManager注册
可以通过ResourceManage查看应用运行状态
ApplicationMaster申请到资源(Container)后
与对应的NodeManager通信,启动Task
Task向ApplicationMaster汇报运行状态和进度
应用运行完成后,ApplicationMaster向ResourceManager申请注销并关闭自己
Spark核心设计思想
spark 原理及特点
spark运行模式及集群角色
上一篇
下一篇
Spark核心设计思想
spark 原理及特点
spark运行模式及集群角色
Zeppelin简介
大数据学习路线
学霸老师见多了学霸,发现学霸养成的真相