首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop中用于运行任务的Mapper进度

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

Stack Overflow用户
提问于 2014-01-23 13:41:39
回答 2查看 736关注 0票数 1

我正在处理Hadoop中的压缩文件。每个zip文件包含2000个XML文件。一个映射器需要90到60分钟才能完成过程。我使用的是Windows和6台有12 GB内存的核心机器。

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

如何务实地更改进度值?

我尝试了以下代码:

代码语言:javascript
复制
InputDocXmlCount++;
if (InputDocXmlCount % 100 == 0)
{
    context.progress();
    runningJob.mapProgress();
}

但我不知道该怎么做?有人能帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2014-01-23 17:22:18

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

不过,请看一看台面先生。您至少可以计算已经处理的xml文件的数量。

票数 1
EN

Stack Overflow用户

发布于 2015-12-30 18:53:02

您没有对进度值的直接控制,但可以考虑通过在映射程序代码中调用TaskAttemptContext#setStatus来实现自定义状态消息。例如,您可以使它成为一个动态消息,包括已处理的XML文件的计数,并定期更新状态字符串中的计数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21309860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档