Santhosh G Nayak created MAPREDUCE-6792:
-------------------------------------------

             Summary: 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


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-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: mapreduce-dev-h...@hadoop.apache.org

Reply via email to