/// <summary>test TaskAttemptID</summary>
        public virtual void TestTaskAttemptID()
        {
            TaskAttemptID task = new TaskAttemptID("001", 2, true, 3, 4);

            NUnit.Framework.Assert.AreEqual("attempt_001_0002_m_000003_4", TaskAttemptID.GetTaskAttemptIDsPattern
                                                ("001", 2, true, 3, 4));
            NUnit.Framework.Assert.AreEqual("task_001_0002_m_000003", ((TaskID)task.GetTaskID
                                                                           ()).ToString());
            NUnit.Framework.Assert.AreEqual("attempt_001_0001_r_000002_3", TaskAttemptID.GetTaskAttemptIDsPattern
                                                ("001", 1, TaskType.Reduce, 2, 3));
            NUnit.Framework.Assert.AreEqual("001_0001_m_000001_2", TaskAttemptID.GetTaskAttemptIDsPatternWOPrefix
                                                ("001", 1, TaskType.Map, 1, 2).ToString());
        }
Example #2
0
 /// <exception cref="System.IO.IOException"/>
 /// <exception cref="System.Exception"/>
 public override bool StatusUpdate(TaskAttemptID taskId, TaskStatus taskStatus)
 {
     lock (this)
     {
         // Serialize as we would if distributed in order to make deep copy
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         DataOutputStream      dos  = new DataOutputStream(baos);
         taskStatus.Write(dos);
         dos.Close();
         taskStatus = TaskStatus.CreateTaskStatus(taskStatus.GetIsMap());
         taskStatus.ReadFields(new DataInputStream(new ByteArrayInputStream(baos.ToByteArray
                                                                                ())));
         LocalJobRunner.Log.Info(taskStatus.GetStateString());
         int mapTaskIndex = this.mapIds.IndexOf(taskId);
         if (mapTaskIndex >= 0)
         {
             // mapping
             float numTasks = (float)this.numMapTasks;
             this.partialMapProgress[mapTaskIndex] = taskStatus.GetProgress();
             this.mapCounters[mapTaskIndex]        = taskStatus.GetCounters();
             float partialProgress = 0.0f;
             foreach (float f in this.partialMapProgress)
             {
                 partialProgress += f;
             }
             this.status.SetMapProgress(partialProgress / numTasks);
         }
         else
         {
             // reducing
             int   reduceTaskIndex = ((TaskID)taskId.GetTaskID()).GetId();
             float numTasks        = (float)this.numReduceTasks;
             this.partialReduceProgress[reduceTaskIndex] = taskStatus.GetProgress();
             this.reduceCounters[reduceTaskIndex]        = taskStatus.GetCounters();
             float partialProgress = 0.0f;
             foreach (float f in this.partialReduceProgress)
             {
                 partialProgress += f;
             }
             this.status.SetReduceProgress(partialProgress / numTasks);
         }
         // ignore phase
         return(true);
     }
 }