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 0700java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator343777043\.staging to 0700at 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。