我想知道映射器任务(或减速器任务)中的未处理异常是否会使任务失败,或者只忽略当时的特定输入对?我想这是前者但不太确定。
答案 0 :(得分:2)
这取决于错误。无论哪种方式,我总是使用try-catch块来包装地图并减少逻辑。如果出错,我会增加一个名称来自异常类名称的计数器。这不仅可以保护hadoop的其余部分免受逻辑错误的影响,还可以通过查看日志来了解出现了多少问题。
答案 1 :(得分:1)
如果异常不再发生(即重试将成功),则它将使任务失败但是将重试该任务(或者可以继续并行运行的推测执行)。如果总是发生异常(例如输入数据不正确),则重试将继续失败,最终整个作业将失败。