使用s3distcp将文件从HDFS复制到Amazon S3时出现“Stream Closed”错误

时间:2012-12-22 01:23:27

标签: hadoop

我正在使用s3distcp将文件从HDFS复制到Amazon S3。最近,我开始为减速器任务收到“Stream Closed”错误。我注意到错误只发生在同一个reducer任务下有多个线程(每个线程分配一个文件上传到S3)的地方。 reducer任务在此错误上失败,但最终由于重试而成功。

我的初步分析是线程使用的是FileSystem类的相同实例。为避免这种情况,我在调用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)

我要提到的另一点是,我最近从Hadoop 0.20迁移到Hadoop 0.20.205和一个新的AMI(2.0.4)。此问题在转移到新版本后开始发生。

我已经被封锁了一段时间了。任何帮助或指导都会有所帮助。

0 个答案:

没有答案