/// <summary>Get job corresponding to jobid.</summary> /// <param name="jobId"/> /// <returns> /// object of /// <see cref="Job"/> /// </returns> /// <exception cref="System.IO.IOException"/> /// <exception cref="System.Exception"/> public virtual Job GetJob(JobID jobId) { JobStatus status = client.GetJobStatus(jobId); if (status != null) { JobConf conf; try { conf = new JobConf(status.GetJobFile()); } catch (RuntimeException ex) { // If job file doesn't exist it means we can't find the job if (ex.InnerException is FileNotFoundException) { return(null); } else { throw; } } return(Job.GetInstance(this, status, conf)); } return(null); }
public virtual void TestFromYarnApplicationReport() { ApplicationId mockAppId = Org.Mockito.Mockito.Mock <ApplicationId>(); Org.Mockito.Mockito.When(mockAppId.GetClusterTimestamp()).ThenReturn(12345L); Org.Mockito.Mockito.When(mockAppId.GetId()).ThenReturn(6789); ApplicationReport mockReport = Org.Mockito.Mockito.Mock <ApplicationReport>(); Org.Mockito.Mockito.When(mockReport.GetTrackingUrl()).ThenReturn("dummy-tracking-url" ); Org.Mockito.Mockito.When(mockReport.GetApplicationId()).ThenReturn(mockAppId); Org.Mockito.Mockito.When(mockReport.GetYarnApplicationState()).ThenReturn(YarnApplicationState .Killed); Org.Mockito.Mockito.When(mockReport.GetUser()).ThenReturn("dummy-user"); Org.Mockito.Mockito.When(mockReport.GetQueue()).ThenReturn("dummy-queue"); string jobFile = "dummy-path/job.xml"; try { JobStatus status = TypeConverter.FromYarn(mockReport, jobFile); } catch (ArgumentNullException) { NUnit.Framework.Assert.Fail("Type converstion from YARN fails for jobs without " + "ApplicationUsageReport"); } ApplicationResourceUsageReport appUsageRpt = Org.Apache.Hadoop.Yarn.Util.Records. NewRecord <ApplicationResourceUsageReport>(); Resource r = Org.Apache.Hadoop.Yarn.Util.Records.NewRecord <Resource>(); r.SetMemory(2048); appUsageRpt.SetNeededResources(r); appUsageRpt.SetNumReservedContainers(1); appUsageRpt.SetNumUsedContainers(3); appUsageRpt.SetReservedResources(r); appUsageRpt.SetUsedResources(r); Org.Mockito.Mockito.When(mockReport.GetApplicationResourceUsageReport()).ThenReturn (appUsageRpt); JobStatus status_1 = TypeConverter.FromYarn(mockReport, jobFile); NUnit.Framework.Assert.IsNotNull("fromYarn returned null status", status_1); NUnit.Framework.Assert.AreEqual("jobFile set incorrectly", "dummy-path/job.xml", status_1.GetJobFile()); NUnit.Framework.Assert.AreEqual("queue set incorrectly", "dummy-queue", status_1. GetQueue()); NUnit.Framework.Assert.AreEqual("trackingUrl set incorrectly", "dummy-tracking-url" , status_1.GetTrackingUrl()); NUnit.Framework.Assert.AreEqual("user set incorrectly", "dummy-user", status_1.GetUsername ()); NUnit.Framework.Assert.AreEqual("schedulingInfo set incorrectly", "dummy-tracking-url" , status_1.GetSchedulingInfo()); NUnit.Framework.Assert.AreEqual("jobId set incorrectly", 6789, status_1.GetJobID( ).GetId()); NUnit.Framework.Assert.AreEqual("state set incorrectly", JobStatus.State.Killed, status_1.GetState()); NUnit.Framework.Assert.AreEqual("needed mem info set incorrectly", 2048, status_1 .GetNeededMem()); NUnit.Framework.Assert.AreEqual("num rsvd slots info set incorrectly", 1, status_1 .GetNumReservedSlots()); NUnit.Framework.Assert.AreEqual("num used slots info set incorrectly", 3, status_1 .GetNumUsedSlots()); NUnit.Framework.Assert.AreEqual("rsvd mem info set incorrectly", 2048, status_1.GetReservedMem ()); NUnit.Framework.Assert.AreEqual("used mem info set incorrectly", 2048, status_1.GetUsedMem ()); }
public static Org.Apache.Hadoop.Mapred.JobStatus Downgrade(Org.Apache.Hadoop.Mapreduce.JobStatus stat) { Org.Apache.Hadoop.Mapred.JobStatus old = new Org.Apache.Hadoop.Mapred.JobStatus(JobID .Downgrade(stat.GetJobID()), stat.GetSetupProgress(), stat.GetMapProgress(), stat .GetReduceProgress(), stat.GetCleanupProgress(), stat.GetState().GetValue(), JobPriority .ValueOf(stat.GetPriority().ToString()), stat.GetUsername(), stat.GetJobName(), stat.GetQueue(), stat.GetJobFile(), stat.GetTrackingUrl(), stat.IsUber()); old.SetStartTime(stat.GetStartTime()); old.SetFinishTime(stat.GetFinishTime()); old.SetSchedulingInfo(stat.GetSchedulingInfo()); old.SetHistoryFile(stat.GetHistoryFile()); return(old); }