mapreduce中的NativeIO chmod“ENOTDIR”异常

时间:2013-07-11 23:33:30

标签: hadoop

我发现,由于RawLocalFileSystem中的某些有趣,mapreduce工作无法启动。

如何调试此错误?似乎没有与NativeIO chmod异常相关联的目录或命令的跟踪。

当然,一个选项是使用自定义的RawLocalFileSystem实现将jar捆绑到我的类路径中,但这看起来有点矫枉过正。

13/07/11 18:39:43 ERROR security.UserGroupInformation:PriviledgedActionException as:root cause:ENOTDIR:不是目录 ENOTDIR:不是目录     at org.apache.hadoop.io.nativeio.NativeIO.chmod(Native Method)     在org.apache.hadoop.fs.FileUtil.execSetPermission(FileUtil.java:699)     在org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:654)     at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)     在org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)     在org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)     在org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)

1 个答案:

答案 0 :(得分:0)

这是一个有趣的错误:事实证明我确实创建了一个FILE,它已经存在于需要创建目录的地方。

也就是说,我的文件系统实现的根目录中有一个名为“tmp”的文件!

无论如何,混淆是由于hadoop NativeIO类报告的错误。

我认为这是一个失败,应该由底层的NativeIO类报告和更好地记录。