【发布时间】:2017-04-18 08:46:22
【问题描述】:
我有兴趣了解 Spark 如何实现容错。在他们的paper 中,他们描述了他们如何为“狭窄的依赖关系”做这件事,比如相当直截了当的 map。但是,我没有说明如果节点在广泛依赖(如排序操作)后崩溃时会做什么。我唯一能找到的是:
相比之下,在具有广泛依赖关系的沿袭图中,单个故障节点可能会导致 RDD 的所有祖先丢失一些分区,需要完全重新执行。
这还不足以理解正在发生的事情。
经过排序后,如果不存储一些附加信息,就无法知道存储在崩溃节点上的数据来自何处。因此,如果在排序后发生崩溃,是重新执行整个谱系还是有某种机制减少了计算开销?那么其他广泛的依赖关系呢?
【问题讨论】:
标签: apache-spark distributed-computing fault-tolerance