spark 中的 RDD 内存占用

RDD Memory footprint in spark

我不确定内存占用的概念。加载例如镶木地板文件时。 1GB 并在 Spark 中创建 RDD,每个 RDD 的内存食物打印是什么?

当您从 parquet 文件创建 RDD 时,在您对 RDD 执行 运行 操作(例如,首先收集)之前,什么都不会 loaded/executed。

现在您的内存占用很可能会随时间变化。假设您有 100 个分区并且它们大小相同(每个 10 MB)。假设你在一个有 20 个核心的集群上 运行ning,那么在任何时间点你只需要在内存中有 10MB x 20 = 200MB 数据。

除此之外,鉴于 Java 对象往往会占用更多 space,因此很难准确地说出 space 您的 1GB 文件将占用多少空间JVM 堆(假设您加载整个文件)。它可以是我的 2 倍,也可以是更多。

你可以做的一个测试技巧是强制你的 RDD 被缓存。然后您可以检查存储下的 Spark UI 并查看 RDD 缓存了多少 space。

Marios,在你的记忆预测中你没有考虑Parquet 的压缩。 1Gb 很可能是未压缩的 5GB。