【问题标题】:Not enough space to cache rdd in memory warning内存警告中没有足够的空间缓存 rdd
【发布时间】:2016-01-14 16:58:20
【问题描述】:

我正在运行一个 spark 作业,并且收到 没有足够的空间在内存中缓存 rdd_128_17000 警告。但是,在附件中,很明显只使用了90.8 G out of 719.3 G。这是为什么?谢谢!


15/10/16 02:19:41 WARN storage.MemoryStore: Not enough space to cache rdd_128_17000 in memory! (computed 21.4 GB so far)
15/10/16 02:19:41 INFO storage.MemoryStore: Memory use = 4.1 GB (blocks) + 21.2 GB (scratch space shared across 1 thread(s)) = 25.2 GB. Storage limit = 36.0 GB.
15/10/16 02:19:44 WARN storage.MemoryStore: Not enough space to cache rdd_129_17000 in memory! (computed 9.4 GB so far)
15/10/16 02:19:44 INFO storage.MemoryStore: Memory use = 4.1 GB (blocks) + 30.6 GB (scratch space shared across 1 thread(s)) = 34.6 GB. Storage limit = 36.0 GB.
15/10/16 02:25:37 INFO metrics.MetricsSaver: 1001 MetricsLockFreeSaver 339 comitted 11 matured S3WriteBytes values
15/10/16 02:29:00 INFO s3n.MultipartUploadOutputStream: uploadPart /mnt1/var/lib/hadoop/s3/959a772f-d03a-41fd-bc9d-6d5c5b9812a1-0000 134217728 bytes md5: qkQ8nlvC8COVftXkknPE3A== md5hex: aa443c9e5bc2f023957ed5e49273c4dc
15/10/16 02:38:15 INFO s3n.MultipartUploadOutputStream: uploadPart /mnt/var/lib/hadoop/s3/959a772f-d03a-41fd-bc9d-6d5c5b9812a1-0001 134217728 bytes md5: RgoGg/yJpqzjIvD5DqjCig== md5hex: 460a0683fc89a6ace322f0f90ea8c28a
15/10/16 02:42:20 INFO metrics.MetricsSaver: 2001 MetricsLockFreeSaver 339 comitted 10 matured S3WriteBytes values

【问题讨论】:

  • 使用的总量/总量对于缓存块无关紧要,它们在内存意义上是原子的。您可以尝试增加该特定 RDD 的分区数吗?顺便说一句,你有一个漂亮的集群。
  • 那么缓存块和 UI 上出现的 (Total used/Total) 有什么区别?谢谢!

标签: amazon-web-services amazon-s3 apache-spark rdd


【解决方案1】:

这很可能是spark.storage.memoryFraction的配置太低造成的。 Spark 只会使用这部分分配的内存来缓存 RDD。

试试:

  • 增加存储分数
  • rdd.persist(StorageLevel.MEMORY_ONLY_SER) 通过序列化 RDD 数据来减少内存使用
  • 如果达到内存限制,rdd.persist(StorageLevel.MEMORY_AND_DISK) 将部分持久化到磁盘上。

【讨论】:

【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多