spark cache仅保留RDD的一小部分

bho*_*ass 5 swap caching apache-spark

当我显式调用rdd.cache时,我可以从spark控制台存储选项卡中看到,实际上只缓存了一小部分rdd.我的问题是剩下的部分在哪里?Spark如何决定在缓存中留下哪个部分?

同样的问题适用于sc.textFile()读入的初始原始数据.我知道这些rdd会自动缓存,即使spark控制台存储表没有显示有关其缓存状态的任何信息.我们知道有多少是缓存与丢失的?

sth*_*lzm 5

cache()与 相同persist(StorageLevel.MEMORY_ONLY),您的数据量可能超过了可用内存。然后 Spark 以“最近最少使用”的方式驱逐缓存。

您可以通过设置配置选项来调整缓存的保留内存。见星火文档的详细信息,并寻找出:spark.driver.memoryspark.executor.memoryspark.storage.memoryFraction

不是专家,但我认为它不会textFile()自动缓存任何东西;在星火快速入门明确缓存的文本文件RDD:sc.textFile(logFile, 2).cache()