我正在开发MapReduce应用程序,我想知道我正在运行的工作的进度。我已经熟悉job.mapprocess和job.reducerprocess方法。这些方法仅在作业完成时起作用的问题。
有什么方法可以让您在作业运行时(不仅是完成时)实时地进行作业进度。
最佳答案
在新的Hadoop API中,您可以通过以下方式从mapper或reducer类中的Context对象访问progress值:
public class MyMapper extends Mapper<Writable, Writable, Writable, Writable> {
@Override
public void map(Writable key, Writable value, Mapper<Writable, Writable, Writable, Writable>.Context context) throws IOException, InterruptedException {
context.getProgress();
}