是否可以恢复失败的Apache Spark作业?

Sak*_*ket 2 scala apache-spark

我正在尝试对来自多个Cassandra表的数据运行Spark作业,这些表被分组为作业的一部分.我试图用一个巨大的数据集13m数据点结束运行并且它已经失败了多个点.当我修复这些故障并继续前进时,我遇到了我修复的下一个问题并再次重新启动作业.有没有办法加快实际数据的测试周期,以便我可以从特定检查点重新启动/恢复以前失败的作业?

小智 5

您可以在不同的中点将RDD检查到磁盘,这样可以在必要时从那里重新启动.您必须将中间体保存为序列文件或文本文件,并做一些工作以确保所有内容干净地进出磁盘.

我发现启动spark-shell并在那里构建我的数据流更有用.如果您能够识别出具有代表性的数据子集,那就更好了.进入REPL后,您可以创建RDD,检查第一个值或取(100)并将它们打印到stdout,计算各种结果数据集,依此类推.REPL使我的火花效率比hadoop高10倍.

一旦我在REPL中构建了一个转换和动作流程,它可以获得我需要的结果,那么我可以将它形成一个scala文件并重构为干净; 提取可以重用和单元测试的函数,调整并行性,无论如何.

当我需要扩展我的数据流时,我经常发现自己回到REPL,所以我从我的scala文件中复制并粘贴代码以获得一个良好的起点,并从那里试验扩展.