在Hadoop 1.0.1中,如何使用API查找reduce任务中每个阶段的权重?
更明确的是,我试图看看洗牌阶段,排序阶段和合并阶段采取了多少减少任务。
答案 0 :(得分:1)
我认为实现这一目标的一种方法是监控任务所花费的总时间以及Shuffle和Sort阶段所花费的时间。您可以使用TaskStatus类提供的以下方法来查找:
getStartTime():获取任务的开始时间。
getFinishTime():获取任务完成时间。如果之前未设置shuffleFinishTime和sortFinishTime,则将这些设置为finishTime。它会在心跳间隔内完成随机播放,排序和完成时的情况并且不单独报告。如果任务状态为TaskStatus.FAILED,则完成时间表示任务失败的时间。
getShuffleFinishTime():获得任务的随机播放时间。如果由于在相同的心跳间隔内结束的随机/排序/结束阶段未设置随机播放时间,则设置为完成下一阶段的时间,即设置这些时间后的排序或任务完成。
getSortFinishTime():获取任务的排序时间。如果由于在同一个组织间隔中排序和减少相位完成而没有设置排序结束时间,则设置完成时间,设置完成时间。
另一种方法可能是使用Counters
。
如果这回答了您的问题,请告诉我。谢谢。