[ 
https://issues.apache.org/jira/browse/MAPREDUCE-5224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13656644#comment-13656644
 ] 

Xi Fang commented on MAPREDUCE-5224:
------------------------------------

I updated the patch. It includes the unit test. I also made some change to 
MAPREDUCE-5224.patch because the previous one is not complete. In many places, 
the default file system is used to access the system directory rather than only 
in getSystemDir(). Thus, this requires much more changes to the original code. 

I still have some questions I am not quite sure.
1. In the constructor of JobTracker:
try {
FileStatus systemDirStatus = systemDirFs.getFileStatus(systemDir);
if (!systemDirStatus.isOwnedByUser(
mrOwner.getShortUserName(), mrOwner.getGroupNames()))
{ throw new AccessControlException("The systemdir " + systemDir + " is not 
owned by " + mrOwner.getShortUserName()); }
if (!systemDirStatus.getPermission().equals(SYSTEM_DIR_PERMISSION))
{ LOG.warn("Incorrect permissions on " + systemDir + ". Setting it to " + 
SYSTEM_DIR_PERMISSION); systemDirFs.setPermission(systemDir,new 
FsPermission(SYSTEM_DIR_PERMISSION)); }
} 
Basically, I have changed the file system used to access the system dir. But I 
am not quite sure if I should change the two IF statements, because the file 
permission might be a problem.
2. LocalJobRunner has a method getSystemDir() as well. It uses the default file 
system to access the system directory.
public String getSystemDir()
{ Path sysDir = new Path(conf.get("mapred.system.dir", 
"/tmp/hadoop/mapred/system")); return fs.makeQualified(sysDir).toString(); }
I am not quite sure if I need to change this as well.
Thanks!
                
> JobTracker should allow the system directory to be in non-default FS
> --------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5224
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5224
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: jobtracker
>            Reporter: Xi Fang
>            Assignee: Xi Fang
>            Priority: Minor
>             Fix For: 1-win
>
>         Attachments: MAPREDUCE-5224.2.patch, MAPREDUCE-5224.patch
>
>
>  JobTracker today expects the system directory to be in the default file 
> system
>         if (fs == null) {
>           fs = mrOwner.doAs(new PrivilegedExceptionAction<FileSystem>() {
>             public FileSystem run() throws IOException {
>               return FileSystem.get(conf);
>           }});
>         }
> ...
>   public String getSystemDir() {
>     Path sysDir = new Path(conf.get("mapred.system.dir", 
> "/tmp/hadoop/mapred/system"));  
>     return fs.makeQualified(sysDir).toString();
>   }
> In Cloud like Azure the default file system is set as ASV (Windows Azure Blob 
> Storage), but we would still like the system directory to be in DFS. We 
> should change JobTracker to allow that.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to