2015-10-16 123 views
2

我正在运行一个spark任务,并且我得到了没有足够的空间来缓存内存中的rdd_128_17000警告。然而,在附件中,显然只使用了90.8G中的719.3G。这是为什么?谢谢!没有足够的空间在内存中缓存rdd警告


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 

enter image description here

+0

共/ Total对高速缓存块无关紧要,它们在内存意义上是原子的。您可以尝试增加该特定RDD的分区数量吗?顺便说一句,你有一个漂亮的集群。 – mehmetminanc

+0

那么缓存块和用户界面上出现的(Total Used/Total)会有什么区别?谢谢! – Edamame

回答

4

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

尝试之一:

  • 增加存储分数
  • rdd.persist(StorageLevel.MEMORY_ONLY_SER)通过串行化的数据RDD
  • rdd.persist(StorageLevel.MEMORY_AND_DISK)以部分地坚持到磁盘如果达到内存限制,以减少存储器的使用。
相关问题