繁体   English   中英

Hadoop中用于运行任务的Mapper进度

[英]Mapper progress in Hadoop for running task

我正在处理Hadoop中的zip文件。 每个zip文件包含2000个XML文件。 单个映射器将花费90至60分钟来完成该过程 我正在使用Windows和具有12 GB RAM的6核计算机。

我的问题是:我的进度条仅在过程完成时显示结果。 进度状态为0%,直到完成任务为止 ,如下所示

在此处输入图片说明

如何实用地更改进度值?

我尝试了以下代码:

InputDocXmlCount++;
if (InputDocXmlCount % 100 == 0)
{
    context.progress();
    runningJob.mapProgress();
}

但是我不知道该怎么做? 谁能帮我?

MR框架代码无法决定如何显示百分比,因为(我假设)您正在使用某些特定的InputFormat。 显然,框架不是为您计算zip中的xml文件数量并预测每100条记录一次报告进度的聪明方法。

但是,请查看MR计数器。 您至少可以计算已经处理的xml文件数量

您无法直接控制进度值,但可以考虑通过从映射器代码中调用TaskAttemptContext#setStatus来实现自定义状态消息。 例如,您可以使该消息成为动态消息,其中包括处理的XML文件的数量,并定期更新状态字符串中的数量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM