用Spark缓存小型RDD耗时太长,并且Spark似乎冻结了

时间:2018-08-23 13:08:08

标签: spark-streaming

我使用spark和persist方法进行缓存。我有几个缓存的RDD,但是其中一些很小(大约300KB)。大多数情况下,它运行良好,通常整个工作持续1s,但有时存储300 KB的缓存大约需要40s。

如果转到SparkUI-> Cache,我可以看到百分比如何增加直到83%(250 KB),然后停止一段时间。如果我在Spark UI中检查事件时间,我可以看到,发生这种情况时,会有一个节点需要花费很长时间。该节点可以是群集中的任何节点,但并不总是相同。

在火花执行器日志中,我看到它在发生此问题时大约需要40s的存储空间3.7kb

INFO  2018-08-23 12:46:58 Logging.scala:54 - org.apache.spark.storage.BlockManager: Found block rdd_1705_23 locally
INFO  2018-08-23 12:47:38 Logging.scala:54 - org.apache.spark.storage.memory.MemoryStore: Block rdd_1692_7 stored as bytes in memory (estimated size 3.7 KB, free 1048.0 MB)
INFO  2018-08-23 12:47:38 Logging.scala:54 - org.apache.spark.storage.BlockManager: Found block rdd_1692_7 locally

我尝试使用MEMORY_ONLY,MEMORY_AND_SER等获得相同的结果。我已经检查了IO磁盘(尽管如果我使用memory_only,我想它没有意义),而且我看不到任何问题。这是随机发生的,但可能占工作的25%。

关于它可能发生什么的任何想法?

0 个答案:

没有答案