我使用s3distcp将文件从hdfs复制到amazons3。最近,我开始在reducer任务中出现“streamclosed”错误。我注意到错误只发生在同一个reducer任务下有多个线程(每个线程分配一个文件上传到s3)的情况下。reducer任务在此错误上失败,但最终由于重试而成功。
我最初的分析是线程使用的是文件系统类的同一个示例。为了避免这种情况,我在调用filesytem.get之前使用了configuration.setboolean(“fs.hdfs.impl.disable.cache”,true),以避免获取缓存示例。但是,我仍然得到同样的错误。以下是系统日志的一部分:
Caused by: java.io.IOException: Stream closed
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2039)
at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1976)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:2932)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:704)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1163)
我应该提到的另一点是,我最近从hadoop0.20迁移到hadoop0.20.205和一个新的ami(2.0.4)。这个问题在迁移到新版本后开始发生。
我已经被封锁了一段时间了。任何帮助或指导都是有帮助的。
暂无答案!
目前还没有任何答案,快来回答吧!