Example #1
0
 /**
  * Prepare the mapred.local.dir for the child. The child is sand-boxed now. Whenever it uses
  * LocalDirAllocator from now on inside the child, it will only see files inside the
  * attempt-directory. This is done in the Child's process space.
  */
 static void setupChildMapredLocalDirs(Task t, JobConf conf) {
   String[] localDirs = conf.getTrimmedStrings(JobConf.MAPRED_LOCAL_DIR_PROPERTY);
   String jobId = t.getJobID().toString();
   String taskId = t.getTaskID().toString();
   boolean isCleanup = t.isTaskCleanupTask();
   String user = t.getUser();
   StringBuffer childMapredLocalDir =
       new StringBuffer(
           localDirs[0]
               + Path.SEPARATOR
               + TaskTracker.getLocalTaskDir(user, jobId, taskId, isCleanup));
   for (int i = 1; i < localDirs.length; i++) {
     childMapredLocalDir.append(
         ","
             + localDirs[i]
             + Path.SEPARATOR
             + TaskTracker.getLocalTaskDir(user, jobId, taskId, isCleanup));
   }
   LOG.debug("mapred.local.dir for child : " + childMapredLocalDir);
   conf.set("mapred.local.dir", childMapredLocalDir.toString());
 }