<点点滴滴>Spark的调度模块和Spark容错
来源:互联网 发布:尼泊尔少年 知乎 编辑:程序博客网 时间:2024/05/26 07:30
Spark的调度模块分:DAGScheduler和TaskScheduler。
(一) DAGScheduler模块:
主要负责分析用户提交的应用,并根据计算任务的依赖关系建立DAG,然后将DAG划分为不同的Stage(阶段),其中每一个Stage都是由可以并发的一组Task组成,每一个阶段的Task执行逻辑完全相同,只是作用于不同的数据上罢了。DAGScheduler将每一阶段的Task划分完毕之后,会将这组Task提交到TaskScheduler
(二)TaskScheduler模块:
TaskScheduler通过Cluster Manager在集群中的某个Worker上启动Executor,在Executor中执行任务。
Spark的容错:
如果RDD1->RDD2->RDD3... 如果RDD2计算完毕,RDD被缓存起来,如果RDD2中的Partion2是由RDD1中的Partion2计算而来,当RDD2中的Partion2缓存丢失时候不会从新计算RDD1的所有Partion。而是只执行RDD1中的Partion2,将计算结果传递给RDD2中的Partion2。这个过程是根据Linage信息(Lineage可以理解为:RDD含有如何从其他RDD衍生出来的 本RDD的信息(这个信息就是Lineage))由于Spark是内容计算模型,一般都可以认为计算的数据都在内存中,所以容错是在内容中发生的:Tachyon是一个内容文件系统。
关于Tachyon:
(一)Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件。
(二)Tachyon容错:
Tachyon集群的元数据容错,类似于Hadoop中的NameNode的元数据容错。
Tachyon的另一个容错是这个机制类似于RDD的Lineage, Tachyon会保留生成数据的Lineage,在数据丢失时候通过Lineage来恢复数据。
补充:关于Lineage的个人理解:Lineage有点类似一个计算序列的公式,每一步计算都会把结果保存起来,如果在当前计算时有数据丢失会根据公式从新返回到某一步(这一步恰好是产生丢失数据的一步)。然后从这一步执行计算把丢失的数据计算出来。(所以:Lineage就是一种过程的描述信息(Log),根据这个信息实现容错)
0 0
- <点点滴滴>Spark的调度模块和Spark容错
- spark-容错
- spark学习十五 spark的容错分析
- 【Spark】Spark容错机制
- Spark Streaming容错的改进和零数据丢失
- Spark Streaming容错的改进和零数据丢失
- Spark Streaming容错的改进和零数据丢失
- Spark Streaming容错的改进和零数据丢失
- Spark Streaming容错的改进和零数据丢失
- Spark Streaming容错的改进和零数据丢失
- Spark Streaming的容错和数据无丢失机制
- Spark的架构和任务调度
- Spark的资源管理和调度模式
- Spark的任务调度
- 008-spark 的调度
- Spark 的调度策略
- spark点点滴滴 —— 认识spark sql的DataFrame和DataSet
- spark学习-49-Spark的job调度
- HDU 1852,1452 a^n的约数和
- C++卷积神经网络实例:tiny_cnn代码详解(8)——partial_connected_layer层结构类分析(上)
- jquery ajax的使用
- 一看就懂的View测量过程介绍
- CoInitialize浅析
- <点点滴滴>Spark的调度模块和Spark容错
- 学习JAVA之路(四、java流程控制语句)
- 【持久化框架】Mybatis与Hibernate的详细对比
- send和recv函数解析
- 运行tomcat7w.exe,提示:指定的服务未安装unable to open the service tomcat7
- 【BZOJ3100】排列
- Paper Reading 4:Massively Parallel Methods for Deep Reinforcement Learning
- hdu4568(旅行商变形)
- 数据结构笔记-----图