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检查点机制有什么区别?

相关推荐
西邮彭于晏15 小时前
Git 标签(Tag)与版本发布完整指南|附全场景命令速查表
大数据·git·elasticsearch
梵构广告15 小时前
平台怎么做品牌营销策划?—品牌营销
大数据·人工智能·平面·品牌策划
AC赳赳老秦15 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
Aloudata15 小时前
Prompt 驱动分析 vs Skill 驱动分析:企业 AI 分析如何从会问走向可复用
大数据·人工智能·数据分析·prompt·skill·语义层
数字化老赵15 小时前
有没有什么好用的AI工具可以用在设备巡检管理的?
大数据·人工智能·设备管理·设备
2401_8812039615 小时前
一网统管 | 赋能智慧养老,守护夕阳美好时光
大数据·智慧养老·一网统管
zcmodeltech16 小时前
智能矿井沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的感知-传输-控制一体化方案
服务器·数据库·分布式·stm32·单片机·嵌入式硬件
A hao16 小时前
免校准 XR技术:打造沉浸式显示系统的关键技术
大数据
数据皮皮侠16 小时前
全国乡村旅游重点村DID数据(2000-2026)
大数据·人工智能·搜索引擎·智慧城市·制造·旅游
米瑞格门窗16 小时前
上海系统门窗哪个靠谱
大数据·人工智能·安全·家装·家装建材·系统门窗