Apache spark 火花中的血统是什么?
沿袭如何帮助重新计算数据Apache spark 火花中的血统是什么?,apache-spark,hadoop,data-lineage,Apache Spark,Hadoop,Data Lineage,沿袭如何帮助重新计算数据 例如,我有几个节点,每个节点计算30分钟的数据。如果一个在15分钟后失败,我们是否可以在不给15分钟时间的情况下重新计算15分钟内处理的数据?关于沿袭的所有理解都在RDD的定义中 让我们回顾一下: RDD是数据元素的不可变分布式集合,可以跨计算机集群存储在内存或磁盘中。数据在集群中的机器之间进行分区,这些机器可以与提供转换和操作的低级API并行操作RDD是容错的,因为它们跟踪数据沿袭信息,以便在发生故障时自动重建丢失的数据 因此,主要有两件事需要了解: 不幸的是
例如,我有几个节点,每个节点计算30分钟的数据。如果一个在15分钟后失败,我们是否可以在不给15分钟时间的情况下重新计算15分钟内处理的数据?关于沿袭的所有理解都在
RDD
的定义中
让我们回顾一下:
RDD是数据元素的不可变分布式集合,可以跨计算机集群存储在内存或磁盘中。数据在集群中的机器之间进行分区,这些机器可以与提供转换和操作的低级API并行操作RDD是容错的,因为它们跟踪数据沿袭信息,以便在发生故障时自动重建丢失的数据
因此,主要有两件事需要了解:
例如,考虑下面的例子
val myRdd = sc.textFile("spam.txt")
val filteredRdd = myRdd.filter(line => line.contains("wonder"))
filteredRdd.count()
sc.textFile()和myRdd.filter()不会立即执行,它将仅在对RDD-here filtereddd.count()调用操作时执行
操作用于将结果保存到某个位置或显示它。还可以使用命令filtereddd.toDebugString打印RDD沿袭信息(filtereddd是此处的RDD)。此外,DAG可视化以非常直观的方式显示完整的图,如下所示:在Spark中,沿袭图是现有RDD和新RDD之间的依赖关系图。 这意味着RDD之间的所有依赖关系都将记录在图形中,而不是原始数据中
来源:DEF:Spark沿袭图是 RDDs • 为每个Spark应用程序维护沿袭图 分别地 • 沿袭图用于按需重新计算RDD并 如果部分持久化RDD丢失,则恢复丢失的数据 • 注意:请小心,不要将沿袭图与 强制评估所有(上游)的行动 RDD的沿袭图中的转换
调用创建一个rdd,对其进行一系列转换。然后在RDD上调用
toDebugString
。您将能够看到特定rdd的血统。