예제 #1
0
 public override void Run()
 {
     try
     {
         TaskAttemptID reduceId = new TaskAttemptID(new TaskID(this.jobId, TaskType.Reduce
                                                               , this.taskId), 0);
         LocalJobRunner.Log.Info("Starting task: " + reduceId);
         ReduceTask reduce = new ReduceTask(this._enclosing.systemJobFile.ToString(), reduceId
                                            , this.taskId, this._enclosing.mapIds.Count, 1);
         reduce.SetUser(UserGroupInformation.GetCurrentUser().GetShortUserName());
         LocalJobRunner.SetupChildMapredLocalDirs(reduce, this.localConf);
         reduce.SetLocalMapFiles(this.mapOutputFiles);
         if (!this._enclosing.IsInterrupted())
         {
             reduce.SetJobFile(this._enclosing.localJobFile.ToString());
             this.localConf.SetUser(reduce.GetUser());
             reduce.LocalizeConfiguration(this.localConf);
             reduce.SetConf(this.localConf);
             try
             {
                 this._enclosing._enclosing.reduce_tasks.GetAndIncrement();
                 this._enclosing._enclosing.myMetrics.LaunchReduce(reduce.GetTaskID());
                 reduce.Run(this.localConf, this._enclosing);
                 this._enclosing._enclosing.myMetrics.CompleteReduce(reduce.GetTaskID());
             }
             finally
             {
                 this._enclosing._enclosing.reduce_tasks.GetAndDecrement();
             }
             LocalJobRunner.Log.Info("Finishing task: " + reduceId);
         }
         else
         {
             throw new Exception();
         }
     }
     catch (Exception t)
     {
         // store this to be rethrown in the initial thread context.
         this.storedException = t;
     }
 }
예제 #2
0
 public override void Run()
 {
     try
     {
         TaskAttemptID mapId = new TaskAttemptID(new TaskID(this.jobId, TaskType.Map, this
                                                            .taskId), 0);
         LocalJobRunner.Log.Info("Starting task: " + mapId);
         this._enclosing.mapIds.AddItem(mapId);
         MapTask map = new MapTask(this._enclosing.systemJobFile.ToString(), mapId, this.taskId
                                   , this.info.GetSplitIndex(), 1);
         map.SetUser(UserGroupInformation.GetCurrentUser().GetShortUserName());
         LocalJobRunner.SetupChildMapredLocalDirs(map, this.localConf);
         MapOutputFile mapOutput = new MROutputFiles();
         mapOutput.SetConf(this.localConf);
         this.mapOutputFiles[mapId] = mapOutput;
         map.SetJobFile(this._enclosing.localJobFile.ToString());
         this.localConf.SetUser(map.GetUser());
         map.LocalizeConfiguration(this.localConf);
         map.SetConf(this.localConf);
         try
         {
             this._enclosing._enclosing.map_tasks.GetAndIncrement();
             this._enclosing._enclosing.myMetrics.LaunchMap(mapId);
             map.Run(this.localConf, this._enclosing);
             this._enclosing._enclosing.myMetrics.CompleteMap(mapId);
         }
         finally
         {
             this._enclosing._enclosing.map_tasks.GetAndDecrement();
         }
         LocalJobRunner.Log.Info("Finishing task: " + mapId);
     }
     catch (Exception e)
     {
         this.storedException = e;
     }
 }