[ https://issues.apache.org/jira/browse/MAPREDUCE-6792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15571558#comment-15571558 ]
Junping Du commented on MAPREDUCE-6792: --------------------------------------- Hi [~snayak], thanks for reporting the issue and your patch contribution! I think this issue reported here is valid so assign the JIRA to you. Will review you patch and put up my comments soon. > Allow user's full principal name as owner of MapReduce staging directory in > JobSubmissionFiles#JobStagingDir() > -------------------------------------------------------------------------------------------------------------- > > Key: MAPREDUCE-6792 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6792 > Project: Hadoop Map/Reduce > Issue Type: Improvement > Components: client > Reporter: Santhosh G Nayak > Assignee: Santhosh G Nayak > Attachments: MAPREDUCE-6792.1.patch > > > Background - > Currently, {{JobSubmissionFiles#JobStagingDir()}} assumes that file owner > returned as part of {{FileSystem#getFileStatus()}} is always user's short > principal name, which is true for HDFS. But, some file systems which are HDFS > compatible like [Azure Data Lake Store (ADLS) > |https://azure.microsoft.com/en-in/services/data-lake-store/] and work in > multi tenant environment can have users with same names belonging to > different domains. For example, {{us...@company1.com}} and > {{us...@company2.com}}. It will be ambiguous, if > {{FileSystem#getFileStatus()}} returns only the user's short principal name > (without domain name) as the owner of the file/directory. > The following code block allows only short user principal name as owner. It > simply fails saying that ownership on the staging directory is not as > expected, if owner returned by the {{FileStatus#getOwner()}} is not equal to > short principal name of the current user. > {code} > String realUser; > String currentUser; > UserGroupInformation ugi = UserGroupInformation.getLoginUser(); > realUser = ugi.getShortUserName(); > currentUser = UserGroupInformation.getCurrentUser().getShortUserName(); > if (fs.exists(stagingArea)) { > FileStatus fsStatus = fs.getFileStatus(stagingArea); > String owner = fsStatus.getOwner(); > if (!(owner.equals(currentUser) || owner.equals(realUser))) { > throw new IOException("The ownership on the staging directory " + > stagingArea + " is not as expected. " + > "It is owned by " + owner + ". The directory must " + > "be owned by the submitter " + currentUser + " or " + > "by " + realUser); > } > {code} > The proposal is to remove the strict restriction on short principal name by > allowing the user's full principal name as owner of staging area directory in > {{JobSubmissionFiles#JobStagingDir()}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org