8

我正在尝试了解 Spark 的内存功能。在这个过程中,我遇到了Tachyon ,它基本上位于内存数据层中,它通过使用沿袭系统提供了无需复制的容错能力,并通过检查点数据集来减少重新计算。现在让人困惑的是,所有这些功能都可以通过 Spark 的标准RDD系统实现。所以我想知道 RDD 是否在幕后实现了 Tachyon 来实现这些功能?如果不是 Tachyon 的用途,它的所有工作都可以由标准 RDD 完成。还是我在将这两者联系起来时犯了一些错误?一个详细的解释或链接将是一个很大的帮助。谢谢你。

4

1 回答 1

1

您链接的论文中的内容并未反映 Tachyon 作为发布开源项目的现实,该论文的部分内容仅作为研究原型存在,从未完全集成到 Spark/Tachyon 中。

当您通过它将数据持久化到OFF_HEAP存储级别时,rdd.persist(StorageLevel.OFF_HEAP)它使用 Tachyon 将该数据作为文件写入 Tachyon 的内存空间。这会将其从 Java 堆中移除,从而为 Spark 提供更多的堆内存可供使用。

它目前不写入沿袭信息,因此如果您的数据太大而无法放入您配置的 Tachyon 集群,RDD 的内存部分将会丢失,您的 Spark 作业可能会失败。

于 2015-04-22T22:59:40.470 回答