windows 下运行hadoop job时报错:
12/07/18 20:00:02 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator343777043\.staging to 0700 java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator343777043\.staging to 0700 at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682) at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655) at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509) at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344) at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189) at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:856) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Unknown Source) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850) at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:824) at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1261)
把 项目引用的 hadoop-core-1.0.2.jar 换成 hadoop-core-0.20.2.jar,了事。
参考:
http://hi.baidu.com/fedora_12/item/43a8c4baafbfbbf963388eeb
http://stackoverflow.com/questions/10509427/haddop-in-windows
https://issues.apache.org/jira/browse/HADOOP-7682
另一种方法:
自己把hadoop源代码中的org.apache.hadoop.fs.FileUtil放到项目中去,自己修改FileUtil.checkReturnValue,使得在WIndows下不报出这个异常。
或者干脆自己重新编译hadoop的jar。