当前位置: 首页 > article >正文

Spark的容错机制

1,Spark如何保障数据的安全

1、RDD容错机制:persist持久化机制

1)cache算子

- 功能:将RDD缓存在内存中
- 语法:cache()
- 本质:底层调用的还是persist(StorageLevel.MEMORY_ONLY),但是只缓存在内存,如果内存不够,缓存会失败
- 场景:资源充足,需要将RDD仅缓存在内存中

2)persist算子

- 功能:将**RDD**【包含这个RDD的依赖关系】进行缓存,可以**自己指定缓存的级别**【和cache区别】
- 语法:`persist(StorageLevel)`
- 级别:StorageLevel决定了缓存位置和缓存几份

StorageLevel 有哪些级别:

Spark的StorageLevel共有9个缓存级别:

DISK_ONLY:缓存入硬盘。这个级别主要是讲那些庞大的Rdd,之后仍需使用但暂时不用的,放进磁盘,腾出Executor内存。
DISK_ONLY_2:多一个缓存副本。
MEMORY_ONLY:只使用内存进行缓存。这个级别最为常用,对于马上用到的高频rdd,推荐使用。
MEMORY_ONLY_2:多一个缓存副本。
MEMORY_AND_DISK:先使用内存,多出来的溢出到磁盘,对于高频的大rdd可以使用。
MEMORY_AND_DISK_2:多一个缓存副本。
OFF_HEAP:除了内存、磁盘,还可以存储在OFF_HEAP

 

场景:根据资源情况,将RDD缓存在不同的地方或者缓存多份

3)unpersist 算子 --释放缓存 

- 功能:将缓存的RDD进行释放
- 语法:`unpersist`
  - unpersist(blocking=True):等释放完再继续下一步
- 场景:明确RDD已经不再使用,后续还有很多的代码需要执行,将RDD的数据从缓存中释放,避免占用资源
- 注意:如果不释放,这个Spark程序结束,也会释放这个程序中的所有内存

2、RDD容错机制:checkpoint检查点机制 

问题:为了避免重复构建RDD,可以将RDD进行persist缓存,但是如果缓存丢失,还是会重新构建RDD,怎么解决?

checkpoint:检查点

  • 功能:将RDD的数据【不包含RDD依赖关系】存储在可靠的存储系统中:HDFS上

这个检查点有点类似于:虚拟机中的快照,像里程碑。

    # 设置一个检查点目录
    sc.setCheckpointDir("../datas/chk/chk1")
    # 将RDD的数据持久化存储在HDFS
    rs_rdd.checkpoint()

一定要在触发算子之前,调用checkpoint()  否则,检查点中没有数据

面试:RDD的cache、persist持久化机制和checkpoint检查点机制有什么区别? 


http://www.kler.cn/a/386458.html

相关文章:

  • 深入探索React合成事件(SyntheticEvent):跨浏览器的事件处理利器
  • 【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
  • neo4j desktop基本入门
  • Qt_day4_Qt_UI设计
  • 32位、64位、x86与x64:深入解析计算机架构
  • C++ 数组与结构 编程练习
  • 数据编排与ETL有什么关系?
  • Springboot中的单元测试该如何进行?
  • 在职场,多少人输在不懂人情世故上!这12条人情世故,你懂几条?
  • C#中日期和时间的处理
  • 15分钟学 Go 第 45 天 : 使用Docker容器
  • Leetcode 778 Swim in a Rising water
  • (十三)JavaWeb后端开发——MySQL2
  • Spring的异步详解(@Async)
  • arkUI:层叠布局(Stack)
  • 测试概念以及测试bug
  • cannot locate symbol _ZTVNSt6__ndk119basic_ostringstreamIcNS_
  • 自动化细胞核分割与特征分析
  • 如何利用动态住宅IP高效抓取亚马逊数据并避开封禁
  • react的创建与书写
  • node.js安装配置(Windows)
  • 我应该如何使用这个API接口来展示商品信息呢
  • 【图像与点云融合教程(五)】海康相机 ROS2 多机分布式实时通信功能包
  • 美的品牌店铺运营全解析:洞察用户行为驱动增长
  • 【excel基本操作-sumif绝对引用和相对引用
  • 《Atomic Picnic》进不去游戏解决方法