Persist 的 MEMORY_ONLY 级别的存储等于 Cache,Persist 其他的配置只是存储的方式不同,作用和原理是和 Cache 类似的,他们二者的区别如下:
* Cache、Persist 是转化类算子,和其他算子一样,触发的时机是在对应分区的上游算子计算完成之后。
* Cache、Persist 会把 RDD 缓存到指定位置,这个操作不会改变 Lineage 血缘的依赖关系,且 Job 执行完成之后,缓存的数据会被清除。
* Cache、Persist 一般应用于需要访问重复数据的应用(如迭代型算法和交互式应用)缓存可以运行得更快。
* CheckPoint 执行完毕后,会产生 CheckPointRDD,此时 lineage 血缘关系已经改变了,容错会从 CheckPointRDD 开始。
* CheckPoint 将 RDD 持久化到 HDFS ,会被永久保存,可以给其他的 Driver 使用
* 虽然Presist 也可以持久化数据到磁盘,但是它有BlockManager管理,一旦Driver结束,BlockManager 也会 stop,
被 cache 到磁盘上的 RDD 也会被清空,而 checkpoint 将 RDD 持久化到HDFS或本地文件,如果不被手动 remove 掉,是一直存在的。
更多关于IT(替换成当前文章主词)培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!