Tachyon 默认情况下是不是由 Apache Spark 中的 RDD 实现?
Posted
技术标签:
【中文标题】Tachyon 默认情况下是不是由 Apache Spark 中的 RDD 实现?【英文标题】:Is Tachyon by default implemented by the RDD's in Apache Spark?Tachyon 默认情况下是否由 Apache Spark 中的 RDD 实现? 【发布时间】:2015-06-30 05:46:34 【问题描述】:我正在尝试了解 Spark 的内存功能。在这个过程中我遇到了Tachyon 它基本上在内存数据层中,它通过使用沿袭系统提供了无需复制的容错,并减少了重新计算 通过检查点数据集。现在让人困惑的是,所有这些功能也可以通过 Spark 的标准RDDs 系统实现。所以我想知道 RDD 是否在幕后实现了 Tachyon 来实现这些功能?如果不是,那么 Tachyon 的所有工作都可以由标准 RDD 完成。还是我在将这两者联系起来时犯了一些错误?一个详细的解释或链接将是一个很大的帮助。谢谢。
【问题讨论】:
【参考方案1】:您链接的论文中的内容并未反映 Tachyon 作为发布开源项目的现实,该论文的部分内容仅作为研究原型存在,从未完全集成到 Spark/Tachyon 中。
当您通过rdd.persist(StorageLevel.OFF_HEAP)
将数据持久化到OFF_HEAP
存储级别时,它会使用 Tachyon 将该数据作为文件写入 Tachyon 的内存空间。这会将其从 Java 堆中移除,从而为 Spark 提供更多的堆内存可供使用。
它目前不写入沿袭信息,因此如果您的数据太大而无法放入您配置的 Tachyon 集群中,RDD 的内存部分将会丢失,您的 Spark 作业可能会失败。
【讨论】:
感谢 Rob 的回答。因此,Tachyon 实际上在 RDD 中默认用于一种持久性级别,但 Tachyon 并没有实现所有这些功能,而是 RDD 实现了所有这些功能。我说的对吗? 据我所知,这是一个准确的描述以上是关于Tachyon 默认情况下是不是由 Apache Spark 中的 RDD 实现?的主要内容,如果未能解决你的问题,请参考以下文章