主页 > 新闻资讯 > 大数据学习:Spark RDD的Checkpoint机制

大数据学习:Spark RDD的Checkpoint机制

作者:张老师 浏览次数: 2021-04-22 17:01
Spark作为大数据技术生态当中的代表性框架,其性能优势在于,相比前代的Hadoop MapReduce,把计算过程转移到内存当中进行,大大提升了计算效率。而基于内存计算,确保数据的稳定和安全就是非常重要的一点。今天的大数据学习分享,我们来讲讲Spark确保数据安全的Checkpoint机制。

大数据学习:Spark RDD的Checkpoint机制

RDD的Checkpoint机制

通常来说,在Spark运行当中,我们可以对rdd的数据进行缓存,保存在内存或者是磁盘中。后续就可以直接从内存或者磁盘中获取得到,但是它们不是特别安全。

要了解RDD的Checkpoint机制,需要理解三个概念,cache、persist以及checkpoint(检查点)。

cache

它是直接把数据保存在内存中,后续操作起来速度比较快,直接从内存中获取得到。但这种方式很不安全,由于服务器挂掉或者是进程终止,会导致数据的丢失。

persist

它可以把数据保存在本地磁盘中,后续可以从磁盘中获取得到该数据,但它也不是特别安全,由于系统管理员一些误操作删除了,或者是磁盘损坏,也有可能导致数据的丢失。

checkpoint(检查点)

它是提供了一种相对而言更加可靠的数据持久化方式。它是把数据保存在分布式文件系统,比如HDFS上。这里就是利用了HDFS高可用性,高容错性(多副本)来最大程度保证数据的安全性。

如何设置Checkpoint

1、在hdfs上设置一个checkpoint目录

sc.setCheckpointDir("hdfs://node01:8020/checkpoint")

2、对需要做checkpoint操作的rdd调用checkpoint方法

val rdd1=sc.textFile("/words.txt")
rdd1.checkpoint
val rdd2=rdd1.flatMap(_.split(""))

3、最后需要有一个action操作去触发任务的运行

rdd2.collect

Cache、persist、checkpoint三者区别

Cache和persist,cache默认数据缓存在内存中;persist可以把数据保存在内存或者磁盘中,后续要触发cache和persist持久化操作,需要有一个action操作。

它不会开启其他新的任务,一个action操作就对应一个job,它不会改变rdd的依赖关系,程序运行完成后对应的缓存数据就自动消失。

Checkpoint,可以把数据持久化写入到hdfs上。后续要触发checkpoint持久化操作,需要有一个action操作,后续会开启新的job执行checkpoint操作。它会改变rdd的依赖关系,后续数据丢失了不能够在通过血统进行数据的恢复。

程序运行完成后对应的checkpoint数据就不会消失

sc.setCheckpointDir("/checkpoint")
val rdd1=sc.textFile("/words.txt")
val rdd2=rdd1.cache
rdd2.checkpoint
val rdd3=rdd2.flatMap(_.split(""))
rdd3.collect

checkpoint操作要执行需要有一个action操作,一个action操作对应后续的一个job。该job执行完成之后,它会再次单独开启另外一个job来执行rdd1.checkpoint操作。

对checkpoint在使用的时候进行优化,在调用checkpoint操作之前,可以先来做一个cache操作,缓存对应rdd的结果数据,后续就可以直接从cache中获取到rdd的数据写入到指定checkpoint目录中。

一个RDD缓存并checkpoint后,如果一旦发现缓存丢失,就会优先查看checkpoint数据存不存在,如果有,就会使用checkpoint数据,而不用重新计算。也即是说,checkpoint可以视为cache的保障机制,如果cache失败,就使用checkpoint的数据。

使用checkpoint的优点在于提高了Spark作业的可靠性,一旦缓存出现问题,不需要重新计算数据,缺点在于,checkpoint时需要将数据写入HDFS等文件系统,对性能的消耗较大。

持久化设置如下:

sc.setCheckpointDir(‘HDFS’)
rdd.cache/persist(memory_and_disk)
rdd.checkpoint

关于大数据学习,Spark RDD的Checkpoint机制,以上就为大家做了简单的介绍了。Spark针对数据安全性,Cache、persist、checkpoint三者都有其优缺点,实际场景下常常需要结合起来使用。成都加米谷大数据,专业大数据培训机构,大数据开发,数据分析与挖掘,零基础班本月正在招生中,课程大纲及预约试听可联系客服!
热点排行
推荐文章
立即申请>>