当前位置:网站首页>11 Spark on RDD CheckPoint
11 Spark on RDD CheckPoint
2022-08-08 23:31:00 【YaPengLi.】
所谓的检查点其实就是通过将 RDD 中间结果写入磁盘由于血缘依赖过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果检查点之后有节点出现问题,可以从检查点开始重做血缘,减少了开销。对 RDD 进行 checkpoint 操作并不会马上被执行,必须执行 Action 操作才能触发。
sc.setCheckpointDir("/checkpoint1")
val lineRdd: RDD[String] = sc.textFile("input/1.txt")
val wordRdd: RDD[String] = lineRdd.flatMap(line => line.split(" "))
val wordToOneRdd: RDD[(String, Long)] = wordRdd.map {
word => {
(word, System.currentTimeMillis())
} }
wordToOneRdd.cache()
wordToOneRdd.checkpoint()
wordToOneRdd.collect().foreach(println)
缓存和检查点区别
Cache 缓存只是将数据保存起来,不切断血缘依赖。Checkpoint 检查点切断血缘依赖。
Cache 缓存的数据通常存储在磁盘、内存等地方,可靠性低。Checkpoint 的数据通常存储在 HDFS 等容错、高可用的文件系统,可靠性高。
建议对 checkpoint()的 RDD 使用 Cache 缓存,这样 checkpoint 的 job 只需从 Cache 缓存中读取数据即可,否则需要再从头计算一次 RDD。
将数据长久地保存在磁盘文件中进行数据重用,涉及到磁盘IO,性能较低,但是数据安全。为了保证数据安全,所以一般情况下,会独立执行作业。为了能够提高效率,一般情况下,是需要和cache联合使用。执行过程中,会切断血缘关系。重新建立新的血缘关checkpoint等同于改变数据源。
边栏推荐
猜你喜欢
[GYCTF2020]Ezsqli-1|SQL注入
2022杭电多校六 1006-Maex (树形DP)
Low-Light Image Enhancement via a Deep Hybrid Network阅读札记
JS中的原型与原型链
(nowcoder22529C)dinner(容斥原理+排列组合)
用工具实现 Mock API 的整个流程
[PP-YOLOv2] Training a custom dataset
【latex异常与错误】There were undefined references.Reference `xxx‘ on page x undefined.参考引用公式编号时发生错误
RecyclerView的多选模式
51nod 2882最短路 (树链剖分)
随机推荐
机器学习之知识点(一)
弹出PopupWindow后让背景变暗的方法
如何使用 Eolink 实现 API 文档自动生成
STM8L LCD digital tube driver, thermometer LCD display
PHP 类函数和对象函数
51nod 2887 抓小偷 平面图最小割转换成最短路
Button Wizard Delete File Command
MES对接Simba实现展讯平台 IMEI 写号与耦合测试
AsyncTask的替代方案
MySQL indexes a field in a table
MySQL 高级知识【 MyISAM 读锁写锁限制】
Golang gorm 数据库连接,迁移,索引
Introduction to Qt (5) - file operation, hotkey and mouse reading (implementation of txt window)
【PP-YOLOv2】训练自定义的数据集
51nod 2877熟练使用tarjan的知识
PHP regular to img SRC to add the domain name
Manacher(求解最长回文子串)
北斗网络同步时钟与GPS卫星时钟同步设备的区别
详解JS中for...of、in关键字
(2022牛客多校五)H-Cutting Papers(签到)