当我运行Hadoop程序时,我想知道它的每次运行速度。我如何知道速度,例如完成10%的工作之后?
最佳答案
监视Hadoop作业的进度非常重要,因为它们是长期运行的作业(有时需要几天才能完成)。有意义的进度更新有助于用户确定作业是否运行正常或是否由于Hadoop堆栈深处的某些错误而卡住了。
根据Hadoop权威指南,
衡量Hadoop作业的进度可以分为多个阶段,即Map阶段和Reduce阶段(惊喜!!!)。测量Map阶段的进度相对容易。首先,将输入数据分为多个块,并为每个块生成一个映射任务。只需监视完成了多少个 map 阶段,就可以更新 map 阶段的进度。
还原阶段有些棘手。精简任务分为三个阶段,即复制,排序和精简。这三个阶段用于监视还原阶段的进度。例如,如果在特定的reduce任务中,“reduce”部分完成了一半,那么我们说此reduce任务已完成5/6。 (1/3份+ 1/3种+ 1/6减少= 5/6)。
希望这可以帮助。
关于java - 如何每次都知道Hadoop中任务的处理速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301234/