我正在使用Spark 1.1.0,并尝试将图形加载到GraphX中。 我的代码的一部分如下:
val distinct = context.union(r1, r2).distinct;
distinct.cache()
val zipped = distinct.zipWithUniqueId
zipped.cache
distinct.unpersist(false)
当我在集群上执行时,首先执行的是:
distinct at Test.scala:72
但是,当这个操作完成后,我在Spark UI的“存储”选项卡中看不到任何条目。下一步是:
zipWithUniqueId at Test.scala:78
但是紧接着它又开始了下面的内容:
distinct at Test.scala:72
这个结果应该被缓存吗?如果一个RDD只使用一次,那么缓存它是否有用?
编辑:
我忘记提到我还在Test.scala:78
处获得了一个抓取失败(Fetch failure)
解决Fetch问题的可能方案
可能的解决方案在这里描述,这可能是Spark版本1.1.0的一个错误。
来自spark-user邮件列表的Andrew Ash提出的其他可能解决方案:
目前似乎有3个问题会引起FetchFailures 1.1:
1)执行器上的长GC(超过spark.core.connection.ack.wait.timeout默认值60秒)
2)打开太多文件(达到内核限制ulimit-n)
3)正在跟踪该票证上的某些未确定问题