2015-10-16 342 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)以部分地堅持到磁盤如果達到內存限制,以減少存儲器的使用。
相關問題