当 map/reduce 使用的数据节点出现故障时会发生什么?不应该将作业重定向到另一个数据节点吗?我的代码应该如何处理这种异常情况?
最佳答案
如果 datanode 宕机,运行在该节点上的任务(假设您也将其用作 tasktracker)将失败,这些失败的任务将被分配给其他 tasktracker 以重新执行。在死数据节点中丢失的数据 block 将在其他数据节点中可用,因为将跨集群复制数据。因此,即使数据节点出现故障,除了重新执行失败任务的非常短暂的延迟外,不会有任何损失。所有这些都将由框架来处理。您的代码无需担心这一点。
关于exception-handling - 如何处理在 map/reduce 期间死亡的数据节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4820697/