我准备了一些RDD并计算了几个小时。我用YARN。有时遗嘱执行者会迷失,而火花(1.6)会因为错过源数据而变得疯狂。 似乎持续存在(DISK)可以帮助我解决这种情况。
但我想知道,由于磁盘上的持久性使用非dfs存储数据,远程执行程序如何读取它?或者计算是否停留,直到YARN可以将执行程序安排到特定节点?
也许我使用了错误的机制,rdd.checkpoint(hdfs://)在这里更合适?
答案 0 :(得分:0)
所以我毕竟选择了检查点。
据我所知,缓存只有进一步迭代的加速目标,但不是可靠性。例如,使用属性spark.dynamicAllocation.cachedExecutorIdleTimeout
甚至可以在某个时候删除数据。
基于文档 http://spark.apache.org/docs/latest/job-scheduling.html#graceful-decommission-of-executors删除执行程序后,无法访问其缓存的数据,尽管" spark shuffle service"可在主机上使用(它可用于其他目的)。
检查点似乎工作正常。