Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如果一个分区丢失,我们可以使用沿袭来重建它。是否将再次加载基本RDD?_Apache Spark_Rdd - Fatal编程技术网

Apache spark 如果一个分区丢失,我们可以使用沿袭来重建它。是否将再次加载基本RDD?

Apache spark 如果一个分区丢失,我们可以使用沿袭来重建它。是否将再次加载基本RDD?,apache-spark,rdd,Apache Spark,Rdd,我读了《弹性分布式数据集——内存集群计算的容错抽象》一文。作者说,如果一个分区丢失,我们可以使用沿袭来重建它。但是,源RDD现在不存在于内存中。 那么,是否将再次加载基本RDD以重建丢失的RDD分区?是的,如您所述,如果用于创建分区的RDD不再位于内存中,则必须从磁盘重新加载并重新计算。如果用于创建当前分区的原始RDD也不存在(内存或磁盘中都不存在),则Spark必须再次后退一步,重新计算以前的RDD。在最坏的情况下,Spark必须返回原始数据 如果你有一个类似于上面描述的最长链的情况,这可能意

我读了《弹性分布式数据集——内存集群计算的容错抽象》一文。作者说,如果一个分区丢失,我们可以使用沿袭来重建它。但是,源RDD现在不存在于内存中。
那么,是否将再次加载基本RDD以重建丢失的RDD分区?

是的,如您所述,如果用于创建分区的RDD不再位于内存中,则必须从磁盘重新加载并重新计算。如果用于创建当前分区的原始RDD也不存在(内存或磁盘中都不存在),则Spark必须再次后退一步,重新计算以前的RDD。在最坏的情况下,Spark必须返回原始数据

如果你有一个类似于上面描述的最长链的情况,这可能意味着长的重新计算时间,这时你应该考虑使用中间结果来存储可靠的存储(如HDFS)。这将防止Spark返回到原始数据源并使用检查点数据

@评论:我很难找到任何官方参考资料,但从他们的代码库中我记得Spark只会重现丢失的部分数据