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 由 blockManager 管理。一旦 driver program 执行结束,也就是 executor 所在进程 CoarseGrainedExecutorBackend stop,blockManager 也会 stop,被 cache 到磁盘上的 RDD 也会被清空,而 checkpoint 将 RDD 持久化到 HDFS 或本地文件夹,如果不被手动 remove 掉,是一直存在的,也就是说可以被下一个 driver program 使用,而 cached RDD 不能被其他 dirver program 使用。

猜你喜欢

转载自www.cnblogs.com/playforever/p/9394823.html