我的程序中有一个长期运行的迭代,我想每隔几次迭代缓存和检查点(建议使用这种技术来减少网络上的长沿袭)所以我不会有 StackOverflowError,这样做
for (i <- 2 to 100) {
//cache and checkpoint ever 30 iterations
if (i % 30 == 0) {
graph.cache
graph.checkpoint
//I use numEdges in order to start the transformation I need
graph.numEdges
}
//graphs are stored to a list
//here I use the graph of previous iteration to this iteration
//and perform a transformation
}
我已经像这样设置了检查点目录
val sc = new SparkContext(conf)
sc.setCheckpointDir("checkpoints/")
但是,当我最终运行我的程序时,我得到了一个异常
Exception in thread "main" org.apache.spark.SparkException: Invalid checkpoint directory
我使用 3 台计算机,每台计算机都有 Ubuntu 14.04,并且我还在每台计算机上使用带有 hadoop 2.4 或更高版本的 spark 1.4.1 的预构建版本。