Hadoop作业失败:读取IndexFile时出错?
如何解决这样的错误Hadoop作业失败:读取IndexFile时出错?,hadoop,mapreduce,Hadoop,Mapreduce,如何解决这样的错误 Map output lost, rescheduling: getMapOutput(attempt_201204251959_0001_m_000000_0,0) failed : java.io.IOException: Error Reading IndexFile at org.apache.hadoop.mapred.IndexCache.readIndexFileToCache(IndexCache.java:113) at org.apache
Map output lost, rescheduling: getMapOutput(attempt_201204251959_0001_m_000000_0,0) failed :
java.io.IOException: Error Reading IndexFile
at org.apache.hadoop.mapred.IndexCache.readIndexFileToCache(IndexCache.java:113)
at org.apache.hadoop.mapred.IndexCache.getIndexInformation(IndexCache.java:66)
at org.apache.hadoop.mapred.TaskTracker$MapOutputServlet.doGet(TaskTracker.java:3745)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
at org.apache.hadoop.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:818)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.io.IOException: Owner '4294967294' for path /work/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201204251959_0001/attempt_201204251959_0001_m_000000_0/output/file.out.index did not match expected owner 'hduser'
at org.apache.hadoop.io.SecureIOUtils.checkStat(SecureIOUtils.java:177)
at org.apache.hadoop.io.SecureIOUtils.openForRead(SecureIOUtils.java:110)
at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:61)
at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:54)
at org.apache.hadoop.mapred.IndexCache.readIndexFileToCache(IndexCache.java:109)
... 23 more
映射输出丢失,重新调度:getMapOutput(尝试\u 201204251959\u 0001\u m\u000000\u 0,0)失败:
java.io.IOException:读取IndexFile时出错
位于org.apache.hadoop.mapred.IndexCache.readIndexFileToCache(IndexCache.java:113)
位于org.apache.hadoop.mapred.IndexCache.getIndexInformation(IndexCache.java:66)
位于org.apache.hadoop.mapred.TaskTracker$mapoputservlet.doGet(TaskTracker.java:3745)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
位于org.apache.hadoop.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:818)
位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
位于org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
位于org.mortbay.jetty.Server.handle(Server.java:326)
位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
位于org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
位于org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
原因:java.io.IOException:path/work/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201204251959_0001/trust_201204251959_0001_m_000000_0/output/file.out.index的所有者“4294967294”与预期所有者“hduser”不匹配
在org.apache.hadoop.io.SecureIOUtils.checkStat上(SecureIOUtils.java:177)
在org.apache.hadoop.io.SecureIOUtils.openForRead(SecureIOUtils.java:110)上
位于org.apache.hadoop.mapred.SpillRecord.(SpillRecord.java:61)
位于org.apache.hadoop.mapred.SpillRecord.(SpillRecord.java:54)
位于org.apache.hadoop.mapred.IndexCache.readIndexFileToCache(IndexCache.java:109)
... 23多
看一看。
看起来使用另一个jetty版本可能会有所帮助…我知道这已经晚了,但对于可能再次遇到相同问题的人来说: Hadoop v1.2.1随Jetty v6.1.26一起提供。 我在Java7(openJDK)上运行Hadoop时也遇到了同样的问题 在Java6上运行hadoop时,问题得到了解决。Java版本之间可能存在兼容性问题