Spark RDD概念学习系列之RDD的容错机制(十七)
RDD的容错机制
RDD实现了基于Lineage的容错机制。RDD的转换关系,构成了compute chain,可以把这个compute chain认为是RDD之间演化的Lineage。在部分计算结果丢失时,只需要根据这个Lineage重算即可。
图1中,假如RDD2所在的计算作业先计算的话,那么计算完成后RDD1的结果就会被缓存起来。缓存起来的结果会被后续的计算使用。图中的示意是说RDD1的Partition2缓存丢失。如果现在计算RDD3所在的作业,那么它所依赖的Partition0、1、3和4的缓存都是可以使用的,无须再次计算。但是Partition2由于缓存丢失,需要从头开始计算,Spark会从RDD0的Partition2开始,重新开始计算。
内部实现上,DAG被Spark划分为不同的Stage,Stage之间的依赖关系可以认为就是Lineage。关于DAG的划分可以参阅第4章。
提到Lineage的容错机制,不得不提Tachyon。Tachyon包含两个维度的容错,一个是Tachyon集群的元数据的容错,它采用了类似于HDFS的Name Node的元数据容错机制,即将元数据保存到一个Image文件,并且保存了元数据变化的编辑日志(EditLog)。另外一个是Tachyon保存的数据的容错机制,这个机制类似于RDD的Lineage,Tachyon会保留生成文件数据的Lineage,在数据丢失时会通过这个Lineage来恢复数据。如果是Spark的数据,那么在数据丢失时Tachyon会启动Spark的Job来重算这部分内容。如果是Hadoop产生的数据,那么重新启动相应的Map Reduce Job就可以。现在Tachyon的容错机制的实现还处于开发阶段,并不推荐将这个机制应用于生产环境。不过,这并不影响Spark使用Tachyon。如果Spark保存到Tachyon的部分数据丢失,那么Spark会根据自有的容错机制来重算这部分数据。
图1 RDD的部分缓存丢失的逻辑图
本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5888159.html,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
1 week110的zookeeper的安装 + zookeeper提供少量数据的存储
下面是在weekend110上的zookeeper的安装 在此之前,先进行快照备份。 在这里,为了后续的zookeeper配置需要,在/home/hadoop/下,新建data目录,再新建zookeeper-3.4.6目录,再新建zkdata目录。 默认情况下,事务日志和数据目录是存放在一起,我们这里,要将它们分开。 dataDir=/home/hadoop/data/zookeeper-3.4.6/zkdata dataLogDir=/home/hadoop/data/zookeeper-3.4.6/zkdatalog 连接成功后,系统会输出Zookeeper的相关环境及配置信息,并在屏幕输出“Welcome to Zookeeper”等信息。 也可以如下,反正是单节点 在这里,需要补充的是, 若是我自己写个java客户端去跑的话,把zookeeper-3.4.6.jar放进来 ls path [watch] get path [watch] 这就说明的是,zookeeper是提供少量数据的存储 本文转自大数据躺过的坑博客园博客,原文链接:http://www.c...
- 下一篇
基于zookeeper的高可用集群
1.准备zookeeper服务器 #node1,node2,node3 #安装请参考http://suyanzhu.blog.51cto.com/8050189/1946580 2.准备NameNode节点 #node1,node4 3.准备JournalNode节点 #node2,node3,node4 4.准备DataNode节点 #node2,node3,node4 #启动DataNode节点命令hadoop-daemon.shstartdatanode 5.修改hadoop的hdfs-site.xml配置文件 <configuration> <property> <name>dfs.nameservices</name> <value>yunshuocluster</value> </property> <property> <name>dfs.ha.namenodes.yunshuocluster</name> <value>nn1,nn2<...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品