spark如何划分stage
来源:互联网 发布:深蓝知乎 编辑:程序博客网 时间:2024/05/17 08:13
转载地址:http://blog.csdn.net/shadow_mi/article/details/51821613
1.从hdfs中读取文件后,创建 RDD 对象
2.DAGScheduler模块介入运算,计算RDD之间的依赖关系。RDD之间的依赖关系就形成了DAG
3.每一个JOB被分为多个Stage,划分Stage的一个主要依据是当前计算因子的输入是否是确定的,如果是则将其分在同一个Stage,避免多个Stage之间的消息传递开销。
以下面一个按 A-Z 首字母分类,查找相同首字母下不同姓名总个数的例子来看一下 RDD 是如何运行起来的。
注:mapValues(function) 原RDD中的Key保持不变,与新的Value一起组成新的RDD中的元素。因此,该函数只适用于元素为KV对的RDD。
步骤 1 :创建 RDD 上面的例子除去最后一个 collect 是个动作,不会创建 RDD 之外,前面四个转换都会创建出新的 RDD 。因此第一步就是创建好所有 RDD( 内部的五项信息 ) 。
步骤 2 :创建执行计划 Spark 会尽可能地管道化,并基于是否要重新组织数据来划分阶段 (stage) ,例如本例中的 groupBy() 转换就会将整个执行计划划分成两阶段执行。最终会产生一个 DAG(directed acyclic graph ,有向无环图 ) 作为逻辑执行计划。
步骤 3 :调度任务将各阶段划分成不同的任务(task),每个任务都是数据和计算的合体。在进行下一阶段前,当前阶段的所有任务都要执行完成。因为下一阶段的第一个转换一定是重新组织数据的,所以必须等当前阶段所有结果数据都计算出来了才能继续。
总结:划分stage的依据是数据是否需要进行重组。
- spark如何划分stage
- spark 中如何划分stage?
- Spark Stage 的划分
- Spark Stage的划分
- spark中Stage的划分
- Spark DAG之划分Stage
- [Spark源码剖析] DAGScheduler划分stage
- Spark源码分析之三:Stage划分
- Spark进阶学习——Stage划分
- spark stage的划分和task分配
- [spark] DAGScheduler划分stage源码解析
- spark学习-50-Spark的stage的划分
- Spark技术内幕:Stage划分及提交源码分析
- Spark技术内幕:Stage划分及提交源码分析
- Spark技术内幕:Stage划分及提交源码分析
- Spark学习之7:Job触发及Stage划分
- spark源码学习(五)--- DAGScheduler中的stage的划分
- Spark 之 Stage划分、数据本地性算法实现
- 你不知道的Java学习笔记15--StringBuffer类
- Lucene学习教程——Lucene索引创建
- android中ArrayList源码分析
- mysql5.5全备份的问题(- Warning: Skipping the data of table mysql.event. Specify the --events option expli)
- CODEVS 2072 分配房间
- spark如何划分stage
- centos下安装git
- Android属性动画(二)——ValueAnimator
- Git安装与基本操作总结
- Jquery datatable 页面报错 Ajax error
- Java基础学习总结(64)——Java内存管理
- 对分查找(Binary Search)
- hdu 2112 HDU Today (map+DIJ)
- Spring国际化