1

我正在使用 hadoop 1.0.3 来运行一些数据处理作业。我的 reducer 不写入 HDFS,而是让我的 reducer 将结果直接写入 mongoDB。最近我开始面临一个问题;我的工作有时“超时”并重新启动,我从 hadoop 控制台收到的消息是“任务尝试_201301241103_0003_m_000001_0 未能报告状态 601 秒”。所以我认为问题出在我的方法上,即写入 mongodb 而不是 HDFS。我想伪造 hadoop 工作状态报告。我怎样才能做到这一点 ?请帮忙。

此外,我观察到我的 reducer 始终保持 0%,只有 Map 阶段以 % 显示恒定增量。工作一完成,reducer一下子就显示100%了。

谢谢, 问候, Mohsin

4

1 回答 1

1

您看到的控制台上的消息来自地图阶段。注意里面的“ m ”。要继续发送进度,您可以执行 context.progress(); 在地图方法中。 http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/StatusReporter.html

于 2013-01-24T09:00:52.297 回答