Spark- Checkpoint原理剖析
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文件中直接读取数据,而不是重新计算。
最新文章
- MySQL字段自增长AUTO_INCREMENT的学习笔记
- LInux下安装jdk与环境配置与Webstorm的安装
- javascript封装自定义滚动条方法,可自定义四个边框滚动条
- php中memcache的运用
- c语言的预处理指令分3种 1>; 宏定义 2>; 条件编译 3>; 文件包含
- js多个元素随机且不重叠分布在页面中
- 自学Zabbix3.10.2-事件通知Notifications upon events-Actions报警配置
- RabbitMQ消息发布时的权衡
- vul/0day/shellcode/payload/poc/exp
- PHP后台登录 接口
- Spring配置之context:annotation与、component-scan以及annotation-driven
- Android开发——JobScheduler机制
- 微信二维码扫描无法下载APK文件的解决办法
- Excel 设置标题栏
- 内功心法 -- java.util.LinkedList<;E>; (5)
- 分布式队列 Celery
- 递推:Number Sequence(mod找规律)
- 文本处理grep命令
- 96.udp通信
- springboot2.0+ 使用拦截器导致静态资源被拦截
热门文章
- 关于myeclipse中启动项目(server为welogic10)报valid license.bea错误的问题解决方式
- Hibernate3中generator标签使用
- left join,right join用法简介
- SVN版本号控制软件-图片含义具体解释
- 将navigationbar的translucent属性设为No后,子控制器视图整体下移问题
- 初步认识Spring MVC框架
- ajax 和jsonp 不是一码事 细读详解
- 【BZOJ3707】圈地 几何
- ural 1303 Minimal Coverage【贪心】
- [note]一类位运算求最值问题