java.io.IOException: Filesystem closed
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
1.问题描述
往集群提交任务的时候,需要在hdfs上面读取一个资源文件。在读取该资源文件的时候,代码爆出如下异常:
Error: java.io.IOException: Filesystem closedat org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:823)at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:846)at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:907)at java.io.DataInputStream.readFully(DataInputStream.java:195)at java.io.DataInputStream.readFully(DataInputStream.java:169)at org.apache.parquet.hadoop.ParquetFileReader$ConsecutiveChunkList.readAll(ParquetFileReader.java:756)at org.apache.parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:494)at org.apache.parquet.hadoop.InternalParquetRecordReader.checkRead(InternalParquetRecordReader.java:127)at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:208)at org.apache.parquet.hadoop.ParquetRecordReader.nextKeyValue(ParquetRecordReader.java:201)at org.apache.hadoop.mapreduce.lib.input.DelegatingRecordReader.nextKeyValue(DelegatingRecordReader.java:89)
...
2.问题的原因
一般读取hdfs上文件的api是这样写的:
public void initPackageNameTypeMap {Configuration conf = new Configuration();FileSystem fs = FileSystem.get(conf);Path file = new Path("filePath");...
}
当任务提交到集群上面以后,多个datanode在getFileSystem过程中,由于Configuration一样,会得到同一个FileSystem。如果有一个datanode在使用完关闭连接,其它的datanode在访问就会出现上述异常。
3.解决方案
解决的方法其实很简单,在代码中加入如下配置就好:
conf.setBoolean("fs.hdfs.impl.disable.cache", true);
FileSytem类内部有一个static CACHE,用来保存每种文件系统的实例集合,FileSystem类中可以通过"fs.%s.impl.disable.cache"来指定是否缓存FileSystem实例(其中%s替换为相应的scheme,比如hdfs、local、s3、s3n等),即一旦创建了相应的FileSystem实例,这个实例将会保存在缓存中,此后每次get都会获取同一个实例。所以设为true以后,就能解决上面的异常。
参考链接:
1.http://stackoverflow.com/questions/23779186/ioexception-filesystem-closed-exception-when-running-oozie-workflow
2.http://stackoverflow.com/questions/20057881/hadoop-filesystem-closed-exception-when-doing-bufferedreader-close
3.http://shift-alt-ctrl.iteye.com/blog/2108760
java.io.IOException: Filesystem closed相关推荐
- 造成java.io.IOException: Stream Closed异常的代码
造成java.io.IOException: Stream Closed异常的代码 参考文章: (1)造成java.io.IOException: Stream Closed异常的代码 (2)http ...
- SpringBoot 项目上传文件异常【java.io.IOException: Stream closed】
项目场景: 提示:这里简述项目相关背景: 项目场景:SpringBoot 项目上传文件接口异常 21 十二月 2022 13:30:53,132 36991 [http-nio-9220-exec-3 ...
- java多线程运行结果写入文件错误java.io.IOException: Stream closed
今天在写多线程程序的时候,需要将每个线程运行的结果写入同一个文件,用的是FileWriter,最后在关闭写入流的时候出现如下问题: java.io.IOException: Stream closed ...
- java.io.IOException: Stream closed
今天在做SSH项目的时候,出现了这个错误.百思不得其解,网上的答案都不能解决我的问题-.. 后来,一气之下就重新写,写了之后发现在JSP遍历集合的时候出错了. <s:iterator value ...
- 关闭流时,抛出异常:java.io.IOException: Stream Closed
首先,这个异常大部分原因是因为关闭流的顺序导致的,下面看一下官方API的描述 void close()throws IOExceptionCloses this stream and releases ...
- java stream closed_java.io.IOException: Stream closed
elseif(e.getActionCommand().equals("save")){JFileChooserfileChooser=newJFileChooser();file ...
- java.io.FileNotFoundException与java.io.IOException
FileNotFoundException 开发背景:系统需添加一个云盘模块,有文件上传功能,同步上传大文件传输速度很慢,用户等待时间过长,采取了异步上传.发现有时存在系统找不到指定的文件,导致上传失 ...
- java.io.IOException: No FileSystem for scheme: hdfs
转自:http://www.cnblogs.com/justinzhang/p/4983673.html 介绍了如何将Maven依赖的包一起打包进jar包.使用maven-assembly打成jar后 ...
- java.io.IOException: Attempted read from closed stream. 异常,解决
在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...
- java.io.IOException No FileSystem for scheme hdfs
java.io.IOException: No FileSystem for scheme: hdfs 以下将转载两篇博文,博文中有解决方法. 1.Java下Maven打包项目解决方法 log4j:W ...
最新文章
- Thinking in React Implemented by Reagent
- Tomcat虚拟目录
- centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...
- fotify php审计,代码安全审计(二)Fortify介绍及使用教程
- .NET Core 3.0 新 JSON API - Utf8JsonWriter
- keras中文文档_【DL项目实战02】图像识别分类——Keras框架+卷积神经网络CNN(使用VGGNet)
- 50 CO配置-控制-获利能力分析-维护经营关注点
- 正则表达式 贪婪与懒惰
- 机器学习算法之KNN算法
- 跟人合作人工智能,方案没有,钱又不出,这怎么合作?
- 基于SSM的个人健康管理系统
- 信息系统分析与设计杨选辉_信息系统分析与设计课后题答案(杨选辉)
- 量子力学在计算机上的应用论文,量子力学论文.doc
- 十分好用PDF转换成PPT转换器
- quartus II DDS实验
- WIN下静默安装MSI文件
- 《童虎学习笔记》20分钟实战ProxySQL MGR高可用及读写分离架构
- 计算机硬件 平面图,看懂室内平面图画法、平面配置原则,一次了解常见的平面图种类!...
- [微信] 微信网页版扫码登录的实现
- 【总结整理】产品经理优秀品质----《结网》