IOException:运行oozie工作流时,Filesystem已关闭异常

时间:2014-05-21 09:28:09

标签: hadoop oozie

我们正在oozie中运行工作流程。 它包含两个操作:第一个是在hdfs中生成文件的map reduce作业,第二个是应该将文件中的数据复制到数据库的作业。

这两个部分都已成功完成,但是oozie在结尾处抛出异常,将其标记为失败的进程。

这是一个例外:

2014-05-20 17:29:32,242 ERROR org.apache.hadoop.security.UserGroupInformation:   PriviledgedActionException as:lpinsight (auth:SIMPLE) cause:java.io.IOException: Filesystem   closed
2014-05-20 17:29:32,243 WARN org.apache.hadoop.mapred.Child: Error running child
java.io.IOException: Filesystem closed
    at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:565)
    at org.apache.hadoop.hdfs.DFSInputStream.close(DFSInputStream.java:589)
    at java.io.FilterInputStream.close(FilterInputStream.java:155)
    at org.apache.hadoop.util.LineReader.close(LineReader.java:149)
    at org.apache.hadoop.mapred.LineRecordReader.close(LineRecordReader.java:243)
    at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.close(MapTask.java:222)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:421)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    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:1408)
    at org.apache.hadoop.mapred.Child.main(Child.java:262)

2014-05-20 17:29:32,256 INFO org.apache.hadoop.mapred.Task:Runnning cleanup for the task

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

访问文件系统时使用以下配置。

Configuration conf = new Configuration();
conf.setBoolean("fs.hdfs.impl.disable.cache", true);
FileSystem fileSystem = FileSystem.get(conf);

答案 1 :(得分:2)

我遇到了一个提示java.io.IOException: Filesystem closed的类似问题。最后,我发现我在其他地方关闭了文件系统。 hadoop文件系统API返回相同的对象。因此,如果我关闭了一个文件系统,那么所有文件系统都将关闭。 我从这个answer

中得到了解决方案