我们正在开发spark-2.4,它有一个新的特性请求,当任务失败时请求失败并重新启动resultstage。这里比较棘手的部分是我们想重新启动所有的任务(包括那些已经成功的任务)来重新尝试。这带来了以下问题:
如果resultstage要写入hdfs上的文件,而不将结果返回驱动程序进行进一步操作,那么我们可以修改文件提交程序代码,以允许新任务覆盖现有文件。
但是,如果resultstage要将结果返回给驱动程序(驱动程序将聚合结果),则无法重新尝试resultstage,除非在将作业提交给调度程序时提供了用于重置聚合结果的额外回调。
这个问题与barrieredresultstage中任务失败时的问题非常相似。当前的行为似乎是abortstage(),它将导致整个作业失败。因此,我想知道是否有更好的方法来处理barriedred resultstage的失败任务,而不使整个工作失败?
暂无答案!
目前还没有任何答案,快来回答吧!