今天遇到一个问题:MapReduce执行任务的百分比回退,需要查看日志分析。那如何判断是那个阶
段出现问题了呢?
在reduce阶段大概分为3个阶段
-
shuffle(进度:0~33%)
准备数据,获取Map阶段已经计算完的数据。会在map执行完一部分,开始拉取数据。
-
sort(进度:33%~66%)
Reduce对拉取的数据进行排序
-
reduce(进度:66%~100%)
真正的reduce计算阶段,执行你所写的reduce代码,如果卡在这个阶段,就是reduce的代码发生问题了,否则才是数据量大的问题。
看了下日志,发现reduce进度在第一阶段,即排除是reduce的问题。重点排查map阶段。