【发布时间】:2016-12-02 04:06:17
【问题描述】:
当我运行我的 spark 应用程序时。产生了几个工作。每个 Job 都有几个阶段。
我正在尝试持久化 RDD。我将 RDD 持久化到磁盘。但是我无法判断它是否在整个工作中被重复使用。
当我查看 DAG 时,我确实看到了一个 green dot,表示一个 rdd 是持久的。但我也在 dag 中看到了之前的地图/过滤器等。
例如在 Job-0 Dag 中我看到:
RandomRDD [0] -> MapParitionRDD [1] -> MapParitionRDD [2] (green) -> Filter [3]...
然后对于 Job-1 Dag,我也看到了:
RandomRDD [0] -> MapParitionRDD [1] -> MapParitionRDD [2] (green) -> Filter [3]...
如何判断 rdd[0]、rdd[1] 和 rdd[2] 是否被重新计算或只是脱水?
一般而言,通过查看工作经历,您如何判断 rdd 是否被重新计算或只是脱水?
【问题讨论】:
-
在工作节点的日志文件中搜索类似:。 Spark 中的 CacheManager 负责将 RDD 分区内容传递给 Block Manager,并确保节点不会同时加载 RDD 的两个副本。如果你看到这样的东西: 那么这意味着RDD大于空闲内存它会自动分页到磁盘并在需要时重新计算jaceklaskowski.gitbooks.io/mastering-apache-spark/content/…
标签: java apache-spark