当spark中没有数据复制时,如何实现容错?



我一直在阅读关于RDD的很多,但我不太明白的是,当Apache spark中没有复制时,RDD是如何分布的?

post[1]说

为了实现所有rdd的Spark容错,整个数据为在集群的多个节点间复制。

根据我的理解,如果是这种情况,那么应该有数据复制,但是大多数文章说DAG是spark实现容错的方式。

谁能解释一下这个细节吗?[1]: https://hevodata.com/learn/spark-fault-tolerance/: ~:文本=火花% 20断层% 20宽容% 20是% 20,或者% 20更% 20断层在% 20)% 20。

你对复制的假设是错的还是正确的,这取决于你的观点。

Spark不复制任何东西,因为它倾向于在内存中工作。如果数据是持久化的,那么如果在HDFS或S3上,这些产品将进行复制。

似乎有一些复制和粘贴在互联网上正在进行的Spark容错。因此,"错误信息"正在被复制。

RDD沿袭或检查点有助于从开始或从磁盘上的某个位置恢复需要重新计算的数据。

数据复制是为同一数据创建多个副本的过程。没有像Kafka、Pinot等其他系统那样的数据复制,因为Spark是一个数据处理引擎,而不是数据存储。也就是说,当读取数据时,将其分成更小的单元并存储在每个节点中,并在此基础上应用进一步的转换。因此有了分布式这个词

spark是如何通过谱系图实现容错的。这些图跟踪了在调用操作之后在RDD上执行的转换。Lineage Graph帮助重新计算损坏的rdd。

最新更新