如何在每次Hadoop中了解任务的处理速度

时间:2016-10-28 08:41:28

标签: java hadoop mapreduce hadoop2

当我运行Hadoop程序时,我想知道每次的速度。我怎么知道速度,例如10%的工作完成后?

1 个答案:

答案 0 :(得分:0)

监控Hadoop作业的进度非常令人感兴趣,因为这些作业是长期工作(有时需要数天才能完成)。有意义的进度更新有助于用户确定作业是否正常运行,或者由于Hadoop堆栈中的某些错误而导致作业停滞。

根据Hadoop权威指南,

测量Hadoop作业的进度可分为阶段,Map阶段和Reduce阶段(惊喜!!!)。测量Map阶段的进度相对容易。在开始时,输入数据被分成块,并且为每个块生成一个映射任务。只需监控完成的地图阶段数量,即可在地图阶段进行更新。

减少阶段有点棘手。 reduce任务分为三个阶段,即Copy,Sort和Reduce。这三个阶段用于监控减少阶段的进度。例如,如果在特定的减少任务中,"减少"部分已完成一半然后我们说这个减少任务是5/6完成。 (1/3副本+ 1/3排序+ 1/6减少= 5/6)。

希望这有帮助。