项目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相关推荐

  1. 造成java.io.IOException: Stream Closed异常的代码

    造成java.io.IOException: Stream Closed异常的代码 参考文章: (1)造成java.io.IOException: Stream Closed异常的代码 (2)http ...

  2. SpringBoot 项目上传文件异常【java.io.IOException: Stream closed】

    项目场景: 提示:这里简述项目相关背景: 项目场景:SpringBoot 项目上传文件接口异常 21 十二月 2022 13:30:53,132 36991 [http-nio-9220-exec-3 ...

  3. java多线程运行结果写入文件错误java.io.IOException: Stream closed

    今天在写多线程程序的时候,需要将每个线程运行的结果写入同一个文件,用的是FileWriter,最后在关闭写入流的时候出现如下问题: java.io.IOException: Stream closed ...

  4. java.io.IOException: Stream closed

    今天在做SSH项目的时候,出现了这个错误.百思不得其解,网上的答案都不能解决我的问题-.. 后来,一气之下就重新写,写了之后发现在JSP遍历集合的时候出错了. <s:iterator value ...

  5. 关闭流时,抛出异常:java.io.IOException: Stream Closed

    首先,这个异常大部分原因是因为关闭流的顺序导致的,下面看一下官方API的描述 void close()throws IOExceptionCloses this stream and releases ...

  6. java stream closed_java.io.IOException: Stream closed

    elseif(e.getActionCommand().equals("save")){JFileChooserfileChooser=newJFileChooser();file ...

  7. java.io.FileNotFoundException与java.io.IOException

    FileNotFoundException 开发背景:系统需添加一个云盘模块,有文件上传功能,同步上传大文件传输速度很慢,用户等待时间过长,采取了异步上传.发现有时存在系统找不到指定的文件,导致上传失 ...

  8. java.io.IOException: No FileSystem for scheme: hdfs

    转自:http://www.cnblogs.com/justinzhang/p/4983673.html 介绍了如何将Maven依赖的包一起打包进jar包.使用maven-assembly打成jar后 ...

  9. java.io.IOException: Attempted read from closed stream. 异常,解决

    在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...

  10. java.io.IOException No FileSystem for scheme hdfs

    java.io.IOException: No FileSystem for scheme: hdfs 以下将转载两篇博文,博文中有解决方法. 1.Java下Maven打包项目解决方法 log4j:W ...

最新文章

  1. Thinking in React Implemented by Reagent
  2. Tomcat虚拟目录
  3. centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...
  4. fotify php审计,代码安全审计(二)Fortify介绍及使用教程
  5. .NET Core 3.0 新 JSON API - Utf8JsonWriter
  6. keras中文文档_【DL项目实战02】图像识别分类——Keras框架+卷积神经网络CNN(使用VGGNet)
  7. 50 CO配置-控制-获利能力分析-维护经营关注点
  8. 正则表达式 贪婪与懒惰
  9. 机器学习算法之KNN算法
  10. 跟人合作人工智能,方案没有,钱又不出,这怎么合作?
  11. 基于SSM的个人健康管理系统
  12. 信息系统分析与设计杨选辉_信息系统分析与设计课后题答案(杨选辉)
  13. 量子力学在计算机上的应用论文,量子力学论文.doc
  14. 十分好用PDF转换成PPT转换器
  15. quartus II DDS实验
  16. WIN下静默安装MSI文件
  17. 《童虎学习笔记》20分钟实战ProxySQL MGR高可用及读写分离架构
  18. 计算机硬件 平面图,看懂室内平面图画法、平面配置原则,一次了解常见的平面图种类!...
  19. [微信] 微信网页版扫码登录的实现
  20. 【总结整理】产品经理优秀品质----《结网》

热门文章

  1. 游戏动画中欧拉角与万向锁的理解
  2. Bash shell编程的语法知识点(1)
  3. 拖拽文件作为文件输入
  4. linux下载百度网盘文件
  5. java语言标识符的声明规范
  6. 总结:常用的 Python 爬虫技巧
  7. Thrift在windows7下的安装与实践
  8. 夜,思考——我想要的到底是什么?
  9. 小记linux如何挂载window下的共享文件
  10. logging synchronous