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文件中直接读取数据,而不是重新计算。

最新文章

  1. MySQL字段自增长AUTO_INCREMENT的学习笔记
  2. LInux下安装jdk与环境配置与Webstorm的安装
  3. javascript封装自定义滚动条方法,可自定义四个边框滚动条
  4. php中memcache的运用
  5. c语言的预处理指令分3种   1> 宏定义   2> 条件编译   3> 文件包含
  6. js多个元素随机且不重叠分布在页面中
  7. 自学Zabbix3.10.2-事件通知Notifications upon events-Actions报警配置
  8. RabbitMQ消息发布时的权衡
  9. vul/0day/shellcode/payload/poc/exp
  10. PHP后台登录 接口
  11. Spring配置之context:annotation与、component-scan以及annotation-driven
  12. Android开发——JobScheduler机制
  13. 微信二维码扫描无法下载APK文件的解决办法
  14. Excel 设置标题栏
  15. 内功心法 -- java.util.LinkedList<E> (5)
  16. 分布式队列 Celery
  17. 递推:Number Sequence(mod找规律)
  18. 文本处理grep命令
  19. 96.udp通信
  20. springboot2.0+ 使用拦截器导致静态资源被拦截

热门文章

  1. 关于myeclipse中启动项目(server为welogic10)报valid license.bea错误的问题解决方式
  2. Hibernate3中generator标签使用
  3. left join,right join用法简介
  4. SVN版本号控制软件-图片含义具体解释
  5. 将navigationbar的translucent属性设为No后,子控制器视图整体下移问题
  6. 初步认识Spring MVC框架
  7. ajax 和jsonp 不是一码事 细读详解
  8. 【BZOJ3707】圈地 几何
  9. ural 1303 Minimal Coverage【贪心】
  10. [note]一类位运算求最值问题