Hadoop PriviledgedActionException: Failed to set permissions 解决办法
错误描述:13/09/12 17:59:00 ERROR security.UserGroupInformation: PriviledgedActionException as:leo cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-leo\mapred\staging\leo480143202\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-leo\mapred\staging\leo480143202\.staging to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:691)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:664)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:514)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:349)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:193)
该bug见https://issues.apache.org/jira/browse/HADOOP-7682
解决方法:
修改FileUtil类checkReturnValue方法重新放入hadoop-core.jar中,
http://blog.csdn.net/java2000_wl/article/details/7598040 提供了hadoop-core-1.0.4.jar,但我用的是hadoop-core-1.2.1.jar。于是我将上面jar中的FileUtil.class提取出来,替换了hadoop-core-1.2.1.jar中的文件。
替换方法:用7-zip或者其他压缩软件打开hadoop-core.jar,找到org\apache\hadoop\fs目录,将FileUtil.class替换原jar包的文件。
此方法能适用于多版本的hadoop-core.jar,只是需要各位自己动一下手。
FileUtil.class下载地址
hadoop-core-1.2.1.jar下载地址
页:
[1]