我使用的是sqoop1.4.3-cdh4.3.0。当我使用 -password-file
我有个例外。
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:181)
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:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
at org.apache.hadoop.mapred.Child.main(Child.java:262)
2013-11-01 20:32:43,471 INFO org.apache.hadoop.mapred.Task: Runnning cleanup for the task
看看他们的代码,看起来他们正在关闭文件系统句柄(fetchpasswordfromflie)。我想这就是为什么我得到上面的异常,因为当我使用clear case密码时,它工作得很好。
我不知道我能做些什么来解决这个问题。我看过好几个帖子建议启用 fs.hdfs.impl.disable.cache
但我不知道这会对性能等产生什么影响。
1条答案
按热度按时间5sxhfpxr1#
我在使用oozie,所以在oozie中我设置了job属性
fs.hdfs.impl.disable.cache
. 解决了这个问题。幸运的是,我们的Map绘制人员没有一个使用fs。我想如果你用fs(
fs = FileSystem.get(conf)
)然后,我们可能不得不检查并确保这些fs中的每一个都是关闭的(因为每次我们调用get
它将返回一个新示例)。