RDD中的cache() persist() checkpoint()】的更多相关文章

cache只有一个默认的缓存级别MEMORY_ONLY ,而persist可以根据StorageLevel设置其它的缓存级别. cache以及persist都不是action. 被重复使用的(但是)不能太大的RDD需要cache cache 只使用 memory,checkpoint写磁盘 rdd.persist(StorageLevel.DISK_ONLY) 与 checkpoint 的区别: persist将 RDD 的 partition 持久化到磁盘,但该 partition 由 blo…
1. 广播变量  1.1 补充知识(来源:https://blog.csdn.net/huashetianzu/article/details/7821674) 之所以存在reduce side join,是因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中.Reduce side join是非常低效的,因为shuffle阶段要进行大量的数据传输.Map side join是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至…
RDD的持久化 1. RDD Cache缓存 ​ RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以缓存在JVM的堆内存中.但是并不是这两个方法被调用时立即缓存,而是触发后面的action算子时,该RDD将会被缓存在计算节点的内存中,并供后面重用. 使用 1.rdd.cache() 等价于rdd.persist(MEMORY_ONLY) 2.rdd.persist() 可以设置级别 object StorageLevel { val NONE = new Sto…
checkpoint checkpoint(检查点)是Spark为了避免长链路,大计算量的Rdd不可用时,需要长时间恢复而引入的.主要就是将通过大量计算而获得的这类Rdd的数据直接持久化到外部可靠的存储体系中(一般为hdfs文件).在以后再需要从这个Rdd获取数据时,直接从检查点获取数据从而避免了从头重新计算Rdd的数据. 生成checkpoint checkpoint是在job执行结束后再启动专门的checkpoint job生成的(完成job的action方法之后),也就是说需要checkp…
问题:cache 与 checkpoint 的区别? 关于这个问题,Tathagata Das 有一段回答: There is a significant difference between cache and checkpoint. Cache materializes the RDD and keeps it in memory and/or disk(其实只有 memory). But the lineage(也就是 computing chain) of RDD (that is, s…
在使用中一直知其然不知其所以然的地使用RDD.cache(),系统的学习之后发现还有一个与cache功能类似看起来冗余的persist 点进去一探究竟之后发现cache()是persist()的特例,persist可以指定一个StorageLevel.StorageLevel的列表可以在StorageLevel 伴生单例对象中找到: cache的源码: /** Persist this RDD with the default storage level (`MEMORY_ONLY`). */…
Spark学习笔记总结 03. Spark cache和checkpoint机制 1. RDD cache缓存 当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用(不需要重新计算).这使得后续的动作变得更加迅速.RDD相关的持久化和缓存,是Spark最重要的特征之一. val rdd = sc.textFile("hdfs://172.23.27.19:9000/wrd/wc/srcdata/").flatMap(_.s…
总算可以开始写第一篇技术博客了,就从学习Spark开始吧.之前阅读了很多关于Spark的文章,对Spark的工作机制及编程模型有了一定了解,下面把Spark中对RDD的常用操作函数做一下总结,以pyspark库为例. RDD 的操作函数(operation)主要分为2种类型 Transformation 和 Action,如下图: Transformation 操作不是马上提交 Spark 集群执行的,Spark 在遇到 Transformation 操作时只会记录需要这样的操作,并不会去执行,…
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: [root@tencent64 ~]# free             total       used       free     shared    buffers     cached Mem:     132256952   72571772   59685180          0    1762632   53034704 -/+ buffe…
Spring框架从version3.1开始支持cache,并在version4.1版本中对cache功能进行了增强. spring cache 的关键原理就是 spring AOP,通过 spring AOP,其实现了在方法调用前.调用后获取方法的入参和返回值,进而实现了缓存的逻辑.关于Spring Cache原理的详细介绍,参见http://blog.csdn.net/guugle2010/article/details/40115675 1.采用Spring的默认开箱即用的cache(Out…