DAG有向无环图
如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图
有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。
ps:通俗的来说就是有方向,没有回流的图可以称为有向无环图
相对复杂的DAG
RDD任务的划分
原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage
对于窄依赖,partition的转换处理在Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据。
在发生shuffle的过程中,会发生shuffle write和shuffle read。
shuffle write:发生在shuffle之前,把要shuffle的数据写到磁盘
为什么:为了保证数据的安全性、避免占用大量的内存
shuffle read:发生在shuffle之后,下游RDD读取上游RDD的数据的过程
Lineage(血统)
RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(即血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。