-
Spark容错机制:首先会查看RDD是否被Cache,如果被Cache到内存或磁盘,直接获取,否则查看Checkpoint所指定的HDFS中是否缓存数据,如果都没有则直接从父RDD开始重新计算还原
-
先cache再checkpoint测试
from pyspark import SparkContext, SparkConf if __name__ == '__main__': print("PySpark chche&checkpoint Program") # 1.创建应用程序入口SparkContext实例对象 conf = SparkConf().setAppName("miniProject").setMaster("local[*]") sc = SparkContext.getOrCreate(conf) # 2.RDD的checkpoint sc.setCheckpointDir("file:///export/pyfolder/checkpoint1") # 3.调用集合RDD中函数处理分析数据 fileRDD = sc.textFile("file:///export/pyfolder/data/word.txt") # 4.调用checkpoint和cache函数,将RDD进行容错,需要RDD中Action函数触发 print("=============1.同时做cache和Perisist===========") fileRDD.cache() fileRDD.checkpoint() print("============2.启动Job1跑正常任务,启动Job2就会先从Cache读取数据,Web页面可以看到ProcessLocal====") fileRDD.count() # 再次执行count函数,此时从checkpoint读取数据 fileRDD.count() print("============3.启动一个Job发现查询数据从checkpoint的hdfs中查找=========") # 释放cache之后如果查询数据从哪里读取?答案是checkpoint的hdfs的数据中 fileRDD.unpersist(True) fileRDD.count()
Spark的容错机制
最新推荐文章于 2023-05-11 10:33:41 发布