概述
java.io.IOException: Filesystem closed at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:232) at org.apache.hadoop.hdfs.DFSClient.access$600(DFSClient.java:70) at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1937) at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1876) at java.io.DataInputStream.readInt(DataInputStream.java:370) at org.apache.hadoop.hive.ql.io.RCFile$Reader.readRecordLength(RCFile.java:1397) at org.apache.hadoop.hive.ql.io.RCFile$Reader.nextKeyBuffer(RCFile.java:1436) at org.apache.hadoop.hive.ql.io.RCFile$Reader.next(RCFile.java:1602) at com.sohu.adrd.targeting.hadoop.mapreduce.RCFileRecordReader.nextKeyValue(RCFileRecordReader.java:82) at org.apache.hadoop.mapreduce.lib.input.DelegatingRecordReader.nextKeyValue(DelegatingRecordReader.java:85) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:456) at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143) at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:51) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323) at org.apache.hadoop.mapred.Child$4.run(Child.java:270) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127) at org.apache.hadoop.mapred.Child.main(Child.java:264)
原因是我写了一个方法读取hdfs上的文件,里面FileSystem.get(new Configuration());获取了一个FS并finally关闭了。
但是参数fs.hdfs.impl.disable.cache默认为false,于是这个conf被Cache,导致在方法外的FS closed。
设置它为true即可。
最后
以上就是火星上路灯为你收集整理的Filesystem closed的全部内容,希望文章能够帮你解决Filesystem closed所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复