一:相关概念的说明
1.application应用:
一个App包含:一个driver(驱动器)、cluster manager(集群管理器)、一个或多个Exector(执行器)
spark中的App可以构建多个Job,而Job间的调用遵循{Scheduling Mode: FIFO}先进先出模式;
在App应用中,触发Action(行动操作)时,创建Job;
2.driver(驱动器):
一般情况下,可以把SparkContext理解为驱动器;
3.Job作用:
每个Job都将执行spark的相关调度:
触发Action时,开启Job作业,并通过宽依赖对RDD进行Stage划分,一个Job可以包含一个或多个Stage;
而每个Stage由一个或多个Task任务组成;Task任务数由partition数决定;程序中可根据需求修改partition
二:检查点checkpoint
1.缓存Cache对RDD进行内存缓存处理,但不对RDD进行相关操作。
2.checkpoint物化处理:
a.将RDD存储到物理磁盘上,以二进制流的方式。
b.物化后,RDD的依赖关系以及RDD本身将不复存在。
3.实现物化操作,需完成以下两个操作(a,b):
a.必须指定checkpoint的路径,如果不指定,将抛异常;
b.物化操作(checkpoint)为转换操作,所以执行Action操作之后才进行物化,RDD计算将执行两次。
c.一般情况下,在checkpiont之前做cache()后,将缓存内容直接输出至物化地址;