目录

RDD Checkpoint

引入

API

代码演示

总结:持久化和Checkpoint的区别

问题:

答案:

区别:


RDD Checkpoint

引入

RDD 数据可以持久化,但是持久化/缓存可以把数据放在内存中,虽然是快速的,但是也是最不可靠的;也可以把数据放在磁盘上,也不是完全可靠的!例如磁盘会损坏等。

Checkpoint的产生就是为了更加可靠的数据持久化,在Checkpoint的时候一般把数据放在在HDFS上,这就天然的借助了HDFS天生的高容错、高可靠来实现数据最大程度上的安全,实现了RDD的容错和高可用。

在Spark Core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS)以便数据恢复;

API

第一步:sc.setCheckpointDir("HDFS目录") //HDFS的目录

第二步:rdd.checkpoint //后续会被多次频繁使用到的RDD/很重要的RDD

代码演示

package cn.itcast.coreimport org.apache.spark.{SparkConf, SparkContext}/*** RDD数据Checkpoint设置,案例演示*/
object SparkCkptTest {def main(args: Array[String]): Unit = {val sparkConf: SparkConf = new SparkConf().setAppName(this.getClass.getSimpleName.stripSuffix("$")).setMaster("local[*]")val sc: SparkContext = new SparkContext(sparkConf)sc.setLogLevel("WARN")// 设置检查点目录,将RDD数据保存到那个目录sc.setCheckpointDir("./ckp")// 读取文件数据val datasRDD = sc.textFile("data/input/words.txt")// 调用checkpoint函数,将RDD进行备份,需要RDD中Action函数触发datasRDD.checkpoint()datasRDD.count()//再次执行count函数, 此时从checkpoint读取数据datasRDD.count()// 应用程序运行结束,关闭资源sc.stop()}
}

总结:持久化和Checkpoint的区别

问题:

缓存持久化 VS Checkpoint 开发中用哪个?

答案:

缓存持久化(保证后续再次使用的速度) + Checkpoint(保证安全)

区别:

 1)、存储位置

Persist 和 Cache 只能保存在本地的磁盘和内存中(或者堆外内存);

Checkpoint 可以保存数据到 HDFS 这类可靠的存储上;

 2)、生命周期

Cache和Persist的RDD会在程序结束后会被清除或者手动调用unpersist方法;

Checkpoint的RDD在程序结束后依然存在,不会被删除;

 3)、Lineage(血统、依赖链、依赖关系)

Persist和Cache,不会丢掉RDD间的依赖链/依赖关系,因为这种缓存是不可靠的,如果出现了一些错误(例如 Executor 宕机),需要通过回溯依赖链重新计算出来;

Checkpoint会斩断依赖链,因为Checkpoint会把结果保存在HDFS这类存储中,更加的安全可靠,一般不需要回溯依赖链;

2021年大数据Spark(十八):Spark Core的RDD Checkpoint相关推荐

  1. 2021年大数据HBase(八):Apache Phoenix的基本介绍

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 前言 系列历史文章 Apache Phoenix的基本介绍 Apache ...

  2. 2021年大数据Kafka(八):Kafka如何保证数据不丢失

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka如何保证数据不丢失 一.如何保证生产者数据不丢失 ...

  3. 2021年大数据Hive(八):Hive自定义函数

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...

  4. 2021年大数据ELK(八):Elasticsearch安装IK分词器插件

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 安装IK分词器 一.下载Elasticsearch IK分词器 ...

  5. 2021年大数据发展十大趋势:抓准一个,就能掌握先机!

    导读:如何激活数据价值.真正从大数据中"淘金",成为2021年大数据的重中之重.大数据究竟如何持续不断地影响组织和机构,以及它给这个世界带来了何种影响,本文特别梳理出2021年大数 ...

  6. 2021年大数据Flink(八):Flink入门案例

    目录 Flink入门案例 前置说明 API 编程模型 准备工程 pom文件 log4j.properties Flink初体验 需求 编码步骤 代码实现 Flink入门案例 前置说明 API API ...

  7. 2021年大数据Hadoop(八):HDFS的Shell命令行使用

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的Shell命 ...

  8. 客快物流大数据项目(十八):Docker私有仓库

    目录 Docker私有仓库 一.registry 的搭建 1.搭建 2.验证

  9. 2021年大数据Hadoop(三十):Hadoop3.x的介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Hadoop3.x的介绍 介绍 Hadoop 3.0新特性 ...

  10. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

最新文章

  1. [分类整理IV]微软等100题系列V0.1版:字符串+数组面试题集锦
  2. Ookla speedtest网速测试算法实现
  3. MTM:matlab实现3谱功率计算
  4. Java NIO学习篇之缓冲区Buffer详解
  5. SVN工作笔记001---svn删除已经上传的文件
  6. java中使用字符(字节)读取文本内容
  7. 中国的网站能活几天?
  8. Effective Modern C++42招独家技巧助你改善C++11和C++14的高效用法笔记
  9. 推荐五款你从未见过的嵌入式电子电路仿真APP
  10. 第九届蓝桥杯大赛青少年创意编程 SCRATCH 初级组试题解析
  11. 学习笔记 - excel筛选分组
  12. WordPress Contact Form插件‘cntctfrm_contact_emai’参数跨站脚本漏洞
  13. 本地电脑无法登陆路由器
  14. Java中的上界与下界(? extends/super T)
  15. MATLAB图像的频域低通滤波(灰度图像滤波+彩色图像滤波)
  16. 微信 html自动加载js,微信小程序实现图片预加载组件
  17. 变异系数在线计算机,数理统计在线计算器
  18. 谷歌浏览器Adobe Flash player 已过期 解决办法
  19. 计算机毕业设计Python+uniapp“宠到家”宠物领养小程序(小程序+源码+LW)
  20. 基尼系数,省级层面、地级市层面、Dagum1997方法,整理好的面板数据

热门文章

  1. centos使用镜像源轻松配置golang+vscode的方法
  2. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程
  3. 【运维学习笔记】在 vSphere Client上创建新的虚拟机
  4. 详细通俗重点CRF层讲解
  5. 梯度提升决策树(GBDT)与XGBoost、LightGBM
  6. 初学MyBatis-Plus
  7. LeetCode简单题之自除数
  8. 压缩人工智能的数据值
  9. 3D点云点云分割、目标检测、分类
  10. 语义分割:基于openCV和深度学习(一)