Apache spark 如果一个分区丢失,我们可以使用沿袭来重建它。是否将再次加载基本RDD?
我读了《弹性分布式数据集——内存集群计算的容错抽象》一文。作者说,如果一个分区丢失,我们可以使用沿袭来重建它。但是,源RDD现在不存在于内存中。Apache spark 如果一个分区丢失,我们可以使用沿袭来重建它。是否将再次加载基本RDD?,apache-spark,rdd,Apache Spark,Rdd,我读了《弹性分布式数据集——内存集群计算的容错抽象》一文。作者说,如果一个分区丢失,我们可以使用沿袭来重建它。但是,源RDD现在不存在于内存中。 那么,是否将再次加载基本RDD以重建丢失的RDD分区?是的,如您所述,如果用于创建分区的RDD不再位于内存中,则必须从磁盘重新加载并重新计算。如果用于创建当前分区的原始RDD也不存在(内存或磁盘中都不存在),则Spark必须再次后退一步,重新计算以前的RDD。在最坏的情况下,Spark必须返回原始数据 如果你有一个类似于上面描述的最长链的情况,这可能意
那么,是否将再次加载基本RDD以重建丢失的RDD分区?是的,如您所述,如果用于创建分区的RDD不再位于内存中,则必须从磁盘重新加载并重新计算。如果用于创建当前分区的原始RDD也不存在(内存或磁盘中都不存在),则Spark必须再次后退一步,重新计算以前的RDD。在最坏的情况下,Spark必须返回原始数据
如果你有一个类似于上面描述的最长链的情况,这可能意味着长的重新计算时间,这时你应该考虑使用中间结果来存储可靠的存储(如HDFS)。这将防止Spark返回到原始数据源并使用检查点数据
@评论:我很难找到任何官方参考资料,但从他们的代码库中我记得Spark只会重现丢失的部分数据