Tachyon 是一种分布式内存存储系统,与 Spark 分开开发,可在 Spark 应用程序期间用作堆外持久性存储
Tungsten 是一个新的 Spark SQL 组件,它通过直接在字节级别工作来提供更高效的 Spark 操作。由于 Tungsten 不再依赖于处理 Java 对象,我们可以使用堆上(在 JVM 中)或堆外存储
在堆外模式下,两者都减少了垃圾收集开销,因为数据不存储为 Java 对象。
那么我是否可以简单地认为 Tachyon 为一般 RDD 带来好处,而 spark-sql 从 Tungsten 中受益?
假设以下代码
val df = spark.range(10)
val rdd = df.rdd
df.persist(StorageLevel.OFF_HEAP) // in Tungsten format(bytes)?
df.show
rdd.persist(StorageLevel.OFF_HEAP) // in Tachyon storage ?
rdd.count