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; } }
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; } }