博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark- Checkpoint原理剖析
阅读量:5992 次
发布时间:2019-06-20

本文共 900 字,大约阅读时间需要 3 分钟。

  Checkpoint,是Spark 提供的一个比较高级的功能。有的时候,比如说,我们的 Spark 应用程序,特别的复杂,然后从初始的RDD开始,到最后拯个应用程序完成,有非常多的步骤,比如超过20个transformation 操作。而且整个应用运行的时间也特别的长,比如通常要运行1-5小时。

  在上述的情况下,就比较适合使用checkpoint 功能。因为,对于特别复杂的 Spark应用,有很高的风险,会出现某个要反复使用的RDD,因为节点的故障,虽然之前持久化过,但是还是导致数据丢失了。那么也就是说,出现失败的时候,没有容错机制,所以当后面的 transformation 操作,又要使用到该RDD时,就会发现数据丢失了(Cache Manager),此时如果没有进行容错处理的话,那么可能就又要重新计算一次数据。简而言之,针对上诉情况,整个Spark应用程序的容错性很差。

  所以,针对上诉的复杂Spark 应用的问题(没有容错机制的问题)。就可以使用checkpoint 功能。

  checkpoint的功能是什么意思?checkpoint就是说,对于一个复杂的RDD chain,我们如果担心中间某些关键的,在后面会反复几次使用的RDD,可能会因为节点的故障,导致持久化数据的丢失,那么就可以针对该RDD格外启动 checkpoint 机制,实现容错和高可用。

  checkpoint 首先要调用 SparkContext 的Checkpoint() 方法,设置一个容错的文件系统的目录,比如说 HDFS ;然后,对RDD调用checkpoint() 方法。之后,在RDD所处的 job 运行结束之后,会启动一个单独的 job,来将checkpoint 过的RDD数据写入之前设置的文件系统,进行高可用、容错的类持久化操作。

  那么此时,即便在后面使用RDD时,他的持久话的数量,不小心丢失了,但是还是可以从它的checkpoint文件中直接读取数据,而不是重新计算。

 

转载于:https://www.cnblogs.com/RzCong/p/7721889.html

你可能感兴趣的文章
java自定义注解学习(三)_注解解析及应用
查看>>
我的友情链接
查看>>
zabbix 自动发现 相关
查看>>
广州种植牙费用需要大约是多少-南方卫视
查看>>
扫描识别工具Dynamic Web TWAIN使用教程:将图像上传到Web服务器(上)
查看>>
汉诺塔(四)(暴力)
查看>>
人类基因组在三大基因数据库中的不同版本
查看>>
读过的一些书
查看>>
HDFS架构原理
查看>>
用js实现返回上一页
查看>>
Docker创建本地仓库
查看>>
成为Java GC专家(3)—如何优化Java垃圾回收机制
查看>>
awk操作应用
查看>>
ASP.NET 使用js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)
查看>>
菜鸟也能搞定C++内存泄漏
查看>>
CentOS系统中常用查看日志命令
查看>>
线程和进程的通信方式以及区别
查看>>
mongoDB 入门指南、示例
查看>>
CentOS 7.0设置IP地址、网关DNS
查看>>
Spring生态顶级项目说明
查看>>