Mapper或Reducer任务中未处理的异常会使任务失败



我想知道映射器任务(或reducer任务)中未处理的异常是否会使任务失败,或者只忽略特定的时间输入对?我想是前者,但不太确定。

这取决于错误。无论哪种方式,我总是强调用try-catch块来包装映射和减少逻辑。在出现错误时,我递增一个计数器,该计数器的名称源自异常类名。这不仅可以保护hadoop的其余部分不受逻辑错误的影响,还可以通过查看日志来了解出错的程度。

如果异常没有重复出现(即重试将成功),则它将使任务失败,但将重试任务(或者可以继续并行运行的推测执行)。如果总是发生异常(例如,存在错误的输入数据),则重试将继续失败,最终整个作业将失败。