有时候,Transformation 的 RDD 非常多或者具体 Transformation 产生的 RDD 本身计算特别复杂和耗时,此时我们必须考虑对计算结果数据进行持久化。与 persist 不同,persist 是优先将结果放入内存,内存不够的情况下,会放在磁盘。无论是放内存还是磁盘,都是不可靠的。Checkpoint 的产生就是为了相对而言更加可靠的持久化数据。

1. Checkpoint 可以指定把数据放在本地并且是多副本的方式,但是正常的生产环境下是放在 HDFS 上的,这就保证了中间计算结果持久化的高可靠性。

2. 在进行 RDD 的 Checkpoint 的时候其所依赖的所有的 RDD 都会从计算链条中清空掉

3. 作为最佳实践,一般在进行 checkpoint 方法调用前通常都要进行 persist 来把当前 RDD 的数据持久化到内存或者磁盘上,这是因为 checkpoint 是 Lazy 级别的,必须有 Job 的执行且在 Job执行后才会从后往前回溯哪个 RDD 进行了 checkpoint 标记,然后对标记了要进行 checkpoint 的 RDD 新启动一个 Job 执行具体的 Checkpoint 的过程。

4. Checkpoint 改变了 RDD 的 Lineage。

5. checkpoint 是另外启动一个 Job,并重新计算。而不是复用计算完的结果。因此建议在 checkpoint 之前进行 cache 操作。

最新文章

  1. LevelDb简单介绍和原理——本质:类似nedb,插入数据文件不断增长(快照),再通过删除老数据做更新
  2. Linux --windows vs
  3. 那些我用过的Android开源项目
  4. Linux下搭建Oracle11g RAC(6)----安装Grid Infrastructure
  5. Binary Tree Preorder Traversal and Binary Tree Postorder Traversal
  6. PHP基础入门详解(一)【世界上最好用的编程语言】
  7. 关系型数据库工作原理-SQL重写(翻译自Coding-Geek文章)
  8. spring 4 + hibernate 4 配置数据库事务
  9. MySQL-ERROR 2003
  10. static_assert enable_if 模板编译期检查
  11. [20180627]truncate table的另类恢复.txt
  12. 第五章 绘图基础(ALTWIND)
  13. 基于HTML5 Canvas WebGL制作分离摩托车
  14. [原抄] Potplayer 1.7.2710 快捷键
  15. 分分钟让你理解HTTPS
  16. go_封装
  17. Codeforces758D Ability To Convert 2017-01-20 10:29 231人阅读 评论(0) 收藏
  18. Cassandra Wiki Login JmxSecurity
  19. Python练习—循环
  20. @RequestBody和@RequestParam、@ResponseBody的使用

热门文章

  1. php/js/linux: js加密(rsa公钥加密) php解密(rsa私钥解密)
  2. node.js+express+jade系列六:图片的上传
  3. hdu-5650 so easy(水题)
  4. C++内存使用机制基本概念详解
  5. Python 爬虫 —— 文件及文件夹操作
  6. PS 滤镜— —挤压效果
  7. 【集成学习】lightgbm参数介绍(sklearn)
  8. HDU5768Lucky7(中国剩余定理+容斥定理)(区间个数统计)
  9. SPOJ8093Sevenk Love Oimaster(广义后缀自动机)
  10. log4net调试