Apache spark Spark实际上在磁盘上的什么位置持久化RDD?
我在不同的存储级别上使用persist,但是当我仅使用Apache spark Spark实际上在磁盘上的什么位置持久化RDD?,apache-spark,Apache Spark,我在不同的存储级别上使用persist,但是当我仅使用内存和磁盘时,我没有发现性能上的差异 我想我的代码可能有问题。。。我在哪里可以找到磁盘上的持久化RDD,以便确保它们确实是持久化的 根据文件: spark.local.dir(默认情况下/tmp) 用于Spark中“临时”空间的目录,包括存储在磁盘上的映射输出文件和RDD。这应该在系统中的快速本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。注意:在Spark 1.0及更高版本中,这将由群集管理器设置的Spark_LOCAL_DIRS(
内存
和磁盘
时,我没有发现性能上的差异
我想我的代码可能有问题。。。我在哪里可以找到磁盘上的持久化RDD,以便确保它们确实是持久化的 根据文件:
spark.local.dir
(默认情况下/tmp
)
用于Spark中“临时”空间的目录,包括存储在磁盘上的映射输出文件和RDD。这应该在系统中的快速本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。注意:在Spark 1.0及更高版本中,这将由群集管理器设置的Spark_LOCAL_DIRS(独立、Mesos)或LOCAL_DIRS(纱线)环境变量覆盖
您的观察可能有两个原因:
- 因此,要使RDD发挥作用,您应该在调用
后对其调用操作(例如persist()
)count()
- 即使您确保执行了
,实际数据也可能不会写入磁盘。实际上,您的写入方法会在数据写入磁盘后直接返回,因此,当您在写入之前读取数据时,它只会返回缓存的数据persist()
缓冲区缓存
,然后再对其进行操作并测量性能
所以我建议你做的是:
缓存。
sync&&echo 3>/proc/sys/vm/drop\u缓存
是否有足够的RAM空间来持久化RDD?实际上是的。但是我正在对Spark进行基准测试,所以我希望它只在磁盘上保留以查看差异。Spark\u WORKER\u DIR或Spark\u LOCAL\u DIR是指示Spark在磁盘上缓存位置的属性