运维人员可以通过 spark 将日志中的错误信息加载到分布式的内存中, 然后对这些内存中的数据进行查询....第二, 如果在 scan-base 的操作中, 且这个时候内存不足以存储这个 RDDs, 那么 RDDs 可以慢慢的从内存中清理掉....如果这个 job 的迭代次数很多的话, 那么备份一些版本的 ranks 来达到减少从错误中恢复出来的时间是很有必要的, 用户可以调用标记为 RELIABLE 的 persist 函数来达到这个目的....对于宽依赖(比如 shuffle 依赖), 我们将中间数据写入到节点的磁盘中以利于从错误中恢复, 这个和 MapReduce 将 map 后的结果写入到磁盘中是很相似的....这里所说的 “高效”, 不仅仅是指使用 RDDs 的输出结果和独立提出的编程模型狂简的输出结果是一致的, 而且 RDDs 在优化性能方面比这些框架还要强大, 比如将特定的数据保存在内存中、对数据分区以减少网络传输以及高效的从错误中恢复