我们正在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)
Run Code Online (Sandbox Code Playgroud)
2014-05-20 17:29:32,256 INFO org.apache.hadoop.mapred.Task:Runnning cleanup for the task
任何的想法 ?
使用org.apache.hadoop.fsscala上的类使用HDFS的典型开始是
val conf = new Configuration()
fs = FileSystem.get(conf)
Run Code Online (Sandbox Code Playgroud)
我们需要调用类似
IOUtils.closeStream(fs)或fs.close()最终的内容吗?
我找到了与此主题相关的单一答案 https://groups.google.com/forum/#!topic/nosql-databases/Mn9KLbtmh7M
根据我的经验,您可以让FileSystem实例自行关闭.
我不确定我能依靠它.