我正在使用hadoop 1.0.3来运行一些数据处理工作。我的reducer不写入HDFS,而是让我的reducer直接将结果写入mongoDB。最近我开始面临一个问题;我的工作有时“超时”并重新启动,我从hadoop控制台获得的消息是“任务尝试_201301241103_0003_m_000001_0无法报告状态601秒”。所以我认为问题在于我的方法,即写入mongodb而不是HDFS。我想伪造hadoop工作状态报告。我怎样才能做到这一点 ?请帮忙。
另外,我观察到我的减速器总是保持0%,只有Map阶段显示%的常量增量。一旦工作完成,减速器就会突然显示100%。
三江源, 问候, 穆赫辛
答案 0 :(得分:1)
您看到的控制台上的消息来自地图阶段。请注意其中的“ m ”。要继续发送进度,可以执行context.progress();在map方法中。 http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/StatusReporter.html