红色部分代表出现意外情况的执行流程
!个人参照《Hadoop权威指南》画的shuffle过程]
Jobtracter单点故障解决办法,Jobtracker与Tasktracker的区别及心跳机制的图片
reduce去map端拉取数据
reducer如何知道从哪台机器上得到map输出?
map任务成功完成后,它们使用心跳机制通知它们的application master,对于指定作业,application master知道map输出和主机位置之间的映射关系。reducer中的一个线程周期性地请求master获取map输出主机的位置,直到获得所有的输出位置。
因为第一个reducer可能会失败,所以在第一个reducer检索map输出之后,主机不会立即从磁盘上删除它们。相反,主机会等待应用程序,直到application master 告诉它删除map输出,这是在作业完成后完成的。