Stage划分
对于窄依赖,partition的转换处理在stage中完成计算。对于宽依赖,由于shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分stage的依据
**划分stage过程:**从最后一个RDD开始,调用递归算法查找RDD的父RDD,找到父RDD后开始遍历,判断父RDD和该RDD的依赖关系,如果是宽依赖,就把父RDD和前面所有RDD划分一个stage,如果是窄依赖,就继续查找父RDD的父RDD,递归的出口就是直到找不到父RDD,最后把所有的RDD统一划分为一个Stage
血统机制:RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区丢失时,它可以根据这些信息来重新运算和恢复丢失的分区
集群:
在任务计算过程中,如果某个Executor宕掉了,会有worker重新启动一个新的Executor来计算完成剩余任务,如果worker宕掉了,此时master不会重新启动这个worker,会把宕掉的worker没有完成的任务重新分配给其他worker进行计算,这个过程是集群的容错