scala 学习笔记4 cache 和persist的区别

来源:互联网 发布:kord机枪 知乎 编辑:程序博客网 时间:2024/06/06 09:55
1)RDD的cache()方法其实调用的就是persist方法,缓存策略均为MEMORY_ONLY;2)可以通过persist方法手工设定StorageLevel来满足工程需要的存储级别;3)cache或者persist并不是action;附:cache和persist都可以用unpersist来取消
考虑内存消耗问题,倘若我们要处理的数据仅仅是进行一次处理,用完即丢弃,就应该避免使用cache或persist,从而降低对内存的损耗。若确实需要将数据加载到内存中,而内存又不足以加载,则可以设置Storage Level。0.9版本的Spark提供了三种Storage Level:MEMORY_ONLY(这是默认值),MEMORY_AND_DISK,以及DISK_ONLY。
然而,在最新版(V1.0.2)的Spark中,提供了更多的Storage Level选择。一个值得注意的选项是OFF_HEAP,它能够将RDD以序列化格式存储到Tachyon中。相比MEMORY_ONLY_SER,这一选项能够减少执行垃圾回收,使Spark的执行器(executor)更小,并能共享内存池。Tachyon是一个基于内存的分布式文件系统,性能远超HDFS。Tachyon与Spark同源同宗,都烙有伯克利AMPLab的印记。目前,Tachyon的版本为0.5.0,还处于实验阶段。
参考:http://www.tuicool.com/articles/YJZNfmA
0 0
原创粉丝点击