Spark cache和 checkpoint的区别是什么?

提问者:帅平 问题分类:面试刷题
Spark cache和 checkpoint的区别是什么?
1 个回答
一闪一闪亮晶晶べ
一闪一闪亮晶晶べ
他俩的区别是:
1、cache:内存,不会截断血缘关系,触发cache后面的行动算子时,计算结果被缓存在计算节点的内存中。cache底层调用的是persist,但只有memory_only一个缓存级别。
2、checkpoint:磁盘,截断血缘关系,执行到ck时,会额外启动一个job,将checkpoint之前的RDD缓存到HDFS上面。ck必须在第一个action算子之前做,否则不会生效。
由于cache保存在内存中不能保证数据的安全性,所以不能作为数据的来源。而checkpoint是保存在分布式节点当中,保存在磁盘,理论上不会丢失,所以他可以切断血缘关系,直接作为后续RDD的数据源头,而cache不可以。
checkpoint之前先cache,对RDD执行checkpoint之前,最好对这个RDD先执行cache,这样新启动的job只需要将内存中的数据拷贝到HDFS上就可以,避免额外提交一次job。
发布于:3个月前 (01-22) IP属地:四川省
我来回答