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。
我不确定内存占用的概念。加载例如镶木地板文件时。 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。