`
bupt04406
  • 浏览: 343622 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

cdh3u0的jetty导致Error Reading IndexFile

 
阅读更多

 

在36个机器上面跑一个大作业,8千多个map,2w多个reduce,跑reduce的时候经常会出现如下问题:

 

Map output lost, rescheduling: getMapOutput(attempt_201204130934_0012_m_000022_0,5416) 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:3651)
   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:824)
   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.EOFException
   at java.io.DataInputStream.readFully(DataInputStream.java:180)
   at java.io.DataInputStream.readLong(DataInputStream.java:399)
   at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:75)
   at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:55)
   at org.apache.hadoop.mapred.IndexCache.readIndexFileToCache(IndexCache.java:109)
   ... 23 more
 
reduce读取不到map的输出结果,然后map重新跑,reduce重新读取数据,整个job运行时间就变长了。。
在官方issue MAPREDUCE-2389 Spurious EOFExceptions reading SpillRecord index files中有介绍。

解决方案:
(1)升级到成3u3(没有测试,但是应该能解决)
(2)把3u0的lib目录下面jetty相关包替换成3u3使用的就行(经过测试没有问题)
jetty-6.1.26.cloudera.1.jar 、jetty-servlet-tester-6.1.26.cloudera.1.jar 、jetty-util-6.1.26.cloudera.1.jar
(3)官方issue中有提到换成jetty-6.1.14(没有测试)
分享到:
评论
1 楼 tsbian 2012-06-08  
我也遇到了类似的问题。

这个错误好像是由于Web服务器Jetty造成的。


参考:https://issues.apache.org/jira/browse/MAPREDUCE-2389

Map output lost, rescheduling: getMapOutput(attempt_201205161733_6589_m_000313_0,40) failed :
java.io.IOException: Illegal seek
at java.io.FileInputStream.skip(Native Method)
at org.apache.hadoop.mapred.TaskTracker$MapOutputServlet.doGet(TaskTracker.java:3841)
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:835)
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)

相关推荐

    hadoop-cdh3u6 eclipse插件

    hadoop-cdh3u6 eclipse插件,本人亲测,在eclipse3.7和4.4下都可以使用

    hive-0.7.1-cdh3u1.tar.gz

    hive-0.7.1-cdh3u1.tar.gz

    sqoop-1.3.0-cdh3u4.tar.gz

    sqoop-1.3.0-cdh3u4.tar.gz

    hadoop-0.20.2-cdh3u6.rar

    hadoop-0.20.2-cdh3u6.rar

    hadoop-core-0.20.2-cdh3u3.jar

    export CLASSPATH="$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:${HADOOP_HOME}/lib/commons-logging-1.0.4.jar:${HADOOP_HOME}/lib/guava-r09-jarjar.jar:${HADOOP_HOME}/hadoop-core-0.20.2-cdh3u3.jar:/usr/...

    hadoop-mrunit-0.20.2-cdh3u4.jar

    用于hadoop单元测试的jar包 hadoop-mrunit-0.20.2-cdh3u4.jar

    CDH3U4的eclipse插件

    CDH3u4版本Hadoop对应的Eclipse插件,在winxp下根据CDH3U4的源码编译,本插件只能连接hadoop-0.20.2-cdh3u4的hadoop环境。 仅在eclipse4.2jee版本下测试可用,3.5下不可用,3.7未测试。

    sqoop-1.3.0-cdh3u6

    数据库传递数据工具,实现mysql,sql server与hdfs,hbase,hive等数据库的数据传递

    hadoop cdh3u6 在eclipse3.6.2下的插件

    hadoop cdh3u6的版本在eclipse3.6.2下的插件,将jar包放入eclipse安装路径下的plugins文件夹,重启即可。

    hadoop-eclipse-plugin-0.20.2-cdh3u6.jar

    最新CDH3u6在eclipse JUNO 下编译的插件,已测正常。 不保证在其他eclipse版本下正常工作。

    hadoop-0.20.2-cdh3u6

    hadoop-0.20.2-cdh3u6 cloudera

    hadoop-0.20.2-cdh3u4

    hadoop-0.20.2-cdh3u4 clouera

    flume-0.9.4-cdh3u5.tar.gz

    很古老的软件了,近乎绝版的flume-ngFlume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中。轻量,配置简单,适用于各种日志收集,并支持 Failover和负载均衡。...

    hadoop-eclipse-plugin-0.20.2-cdh3u4.jar

    Hadoop Eclipse插件,经测试在Eclipse3.7下能正常使用。在Windows下连接远程Hadoop集群时,注意本地要安装cygwin...另,Hadoop Eclipse插件只能连接相应版本的Hadoop集群,例如,本插件只能连接hadoop-0.20.2-cdh3u4。

    hadoop安装

    1.a1 192.168.9.1 (master) a2 192.168.9.2 (slave1) a3 192.168.9.3 (slave2) 修改/etc/hosts 2.3台机器 创建hadoop 用户 ...[hadoop@a1 hadoop-0.20.2-cdh3u5]$ bin/hadoop dfsadmin -report

    CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1

    因为CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel命令生成的CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1文件hash不匹配,自己找到官网上的parcel.sha1文件解决了这个问题,共享给大家

    ubuntu-CDH6.3.2完整安装包网盘下载地址

    CDH6.3.2完整安装包网盘下载,包含 CDH-6.3.2-1.cdh6.3.2.p0.1605554-bionic.parcel、CDH-6.3.2-1.cdh6.3.2.p0.1605554-bionic.parcel.sha1、CDH-6.3.2-1.cdh6.3.2.p0.1605554-bionic.parcel.sha256、CDH-6.3.2-1....

    cdh7.1.7和cm7.4.4软件包下载及cdh7安装步骤

    CDH-7.1.7-1.cdh7.1.7.p0.15945976-el7.parcel CDH-7.1.7-1.cdh7.1.7.p0.15945976-el7.parcel.sha1 CDH-7.1.7-1.cdh7.1.7.p0.15945976-el7.parcel.sha256 manifest.json cm7.4.7包括: cloudera-manager-agent-7.4.4...

    CDH6.3.2安装包下载

    由于CSDN上传文件大小限制,大家可以下载《CDH6.3.2下载.txt》获取网盘地址进行下载,我打包了CDH6.3.2 搭建所需要的各种安装文件,包括: manifest.json cloudera-manager.repo RPM-GPG-KEY-cloudera cm6.3.1-...

    CDH6.3.2安装包及安装教程

    CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm ...

Global site tag (gtag.js) - Google Analytics