MR是否需要必须从开头执行整个任务?为什么不需要?
MR只需要运行失败的map和reduce任务。假设map任务执行了两次,一个reduce任务执行看到了第一次执行map任务的结果,另外一个reduce任务看到的是第二个。那么这种情况需要重新执行整个过程。除此之外,可以把map和reduce设计成为一个纯确定性函数。参数决定结果
没有状态,没有文件I/O,没有交叉、没有额外的通讯。假设此时你需要容忍非纯确定的函数怎么办?
当某个worker失败时,解决方式要不是通过全部重新执行。或者是回到某个系统的快照(你可能需要增加这部分的逻辑)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。