spark RDD的缓存和检查点不同使用场景和工作机制 -- (视频笔记)

1、缓存

persist =>storage level 

对运算中间数据持久化。

对数据缓存了,就会重用。

使用场景:步骤1=>步骤2=>【步骤3.1、步骤3.2】 就需要在步骤2进行缓存;每个分片都会进行缓存;有缓存就会有丢失,分片有可能丢失,会造成数据不完整,根据RDD的依赖机制,丢失的会从前边的步骤重新计算得来。

缓存场景

1、获取大量数据之后,例如:从日志文件获取了数据后,因为重新获取文件成本较高

2、经过了较长的链条计算后,重新在计算成本太高

3、单个步骤非常消耗资源:这样在这个资源后进行缓存

 

checkpoint

可以设置 checkpoint directory

4、checkpoint之前一般会进行缓存,checkpoint会改变RDD的依赖关系,RDD变成checkpoint RDD后,前边的所有RDD都会被移除,因为RDD的lazy,因此至少一次action之后才可以触发checkpoint。

5、引入checkpoint主要是为了避免缓存丢失造成的重新计算带来的资源消耗。

checkpoint是具体action之后,重新创建一个job来完成计算,checkpoint会产生一个新的job

6、checkpoint比缓存更可靠。

 

posted @ 2015-12-29 14:38  逸新  阅读(1362)  评论(0编辑  收藏  举报