[ https://issues.apache.org/jira/browse/HDFS-1333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13046202#comment-13046202 ]
Wouter de Bie commented on HDFS-1333: ------------------------------------- I've experienced the same error on 0.20.2 (cloudera's cdh3u0) when submitting a job and restarting the JobTracker. In both cases, the ownership of paths is checked. For the quick and dirty solution, I've patched core/org/apache/hadoop/fs/s3/S3FileSystem.java and added the following method to the S3FileStatus inner class: {noformat} public String getOwner() { return System.getProperty("user.name"); } {noformat} For my use case this works, but it probably should use proper acl stuff. > S3 File Permissions > ------------------- > > Key: HDFS-1333 > URL: https://issues.apache.org/jira/browse/HDFS-1333 > Project: Hadoop HDFS > Issue Type: Bug > Affects Versions: 0.22.0 > Environment: Hadoop cluster using 3 small Amazon EC2 machines and the > S3FileSystem. > Hadoop compiled from latest trunc: 0.22.0-SNAPSHOT > core-site: > fs.default.name=s3://my-s3-bucket > fs.s3.awsAccessKeyId=[key id omitted] > fs.s3.awsSecretAccessKey=[secret key omitted] > hadoop.tmp.dir=/mnt/hadoop.tmp.dir > hdfs-site: empty > mapred-site: > mapred.job.tracker=[domU-XX-XX-XX-XX-XX-XX.compute-1.internal:9001] > mapred.map.tasks=6 > mapred.reduce.tasks=6 > Reporter: Danny Leshem > Priority: Critical > > Till lately I've been using 0.20.2 and everything was ok. Now I'm using the > latest trunc 0.22.0-SNAPSHOT and getting the following thrown: > Exception in thread "main" java.io.IOException: The ownership/permissions on > the staging directory > s3://my-s3-bucket/mnt/hadoop.tmp.dir/mapred/staging/root/.staging is not as > expected. It is owned by and permissions are rwxrwxrwx. The directory must > be owned by the submitter root or by root and permissions must be rwx------ > at > org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:107) > at > org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:312) > at org.apache.hadoop.mapreduce.Job.submit(Job.java:961) > at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:977) > at com.mycompany.MyJob.runJob(MyJob.java:153) > at com.mycompany.MyJob.run(MyJob.java:177) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at com.mycompany.MyOtherJob.runJob(MyOtherJob.java:62) > at com.mycompany.MyOtherJob.run(MyOtherJob.java:112) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) > at com.mycompany.MyOtherJob.main(MyOtherJob.java:117) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.hadoop.util.RunJar.main(RunJar.java:187) > (The "it is owned by ... and permissions " is not a mistake, seems like the > empty string is printed there) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira