4

很多人说:火花RDD容错的误区

Spark不会复制hdfs中的数据。

Spark将操作放置在DAG图中.Spark构建RDD谱系。如果一个RDD丢失了,他们可以在血统图的帮助下重建。 所以不需要数据复制,因为RDDS可以从血统图重新计算。

我的问题是:

如果一个节点出现故障,火花只会重新计算RDD分区失去了这个节点上,但哪里的recompution过程所需的数据源从何而来?当节点失效时,你的意思是它的父RDD还在吗?如果失去一些分区的RDD没有父RDD(如RDD来自火花流接收器),该怎么办?

回答

2

如果我们通过计算失去了一部分,该怎么办?

  • 依靠MR的核心洞察力!决定论提供了安全的重新计算。
  • 追踪每个RDD的“血统”。如果需要,可以从父母重新计算。
  • 有趣的:只需要记录微小的状态来做重新计算。

    Need parent pointer, function applied, and a few other bits. 
    Log 10 KB per transform rather than re-output 1 TB -> 2 TB 
    

Source

孩子RDD是介绍如何从父RDD计算RDD元数据。了解更多What is RDD dependency in Spark?