我正在尝试在伪分布式模式下运行一个简单的工作。 masters文件包含localhost,slave文件包含localhost。 conf文件正确指向jobtracker和namenode。
在reduce尝试的日志中,我一直看到这个错误: 2012-07-04 14:31:11,149 WARN org.apache.hadoop.mapred.ReduceTask:java.io.IOException:服务器返回HTTP响应代码:500为URL:
http://localhost:50060/mapOutput?job=job_201207041420_0002&map=attempt_201207041420_0002_m_000000_0&reduce=0
手动尝试上述URL,我收到此错误: java.lang.NoSuchMethodError:javax.servlet.http.HttpServletRequest.getLocalPort()I
有谁知道发生了什么?
答案 0 :(得分:1)
问题解决了,这是一个API不匹配。我在某个时候将一个特定的j2ee相关的jar复制到了Hadoop的lib目录中,那个jar是一个较新的版本,它不包含另一个jar中另一个类所请求的特定类。
我回滚到默认库,它工作正常!