public virtual void TestHistoryEvents() { Configuration conf = new Configuration(); MRApp app = new TestJobHistoryEvents.MRAppWithHistory(2, 1, true, this.GetType(). FullName, true); app.Submit(conf); Org.Apache.Hadoop.Mapreduce.V2.App.Job.Job job = app.GetContext().GetAllJobs().Values .GetEnumerator().Next(); JobId jobId = job.GetID(); Log.Info("JOBID is " + TypeConverter.FromYarn(jobId).ToString()); app.WaitForState(job, JobState.Succeeded); //make sure all events are flushed app.WaitForState(Service.STATE.Stopped); /* * Use HistoryContext to read logged events and verify the number of * completed maps */ HistoryContext context = new JobHistory(); // test start and stop states ((JobHistory)context).Init(conf); ((JobHistory)context).Start(); NUnit.Framework.Assert.IsTrue(context.GetStartTime() > 0); NUnit.Framework.Assert.AreEqual(((JobHistory)context).GetServiceState(), Service.STATE .Started); // get job before stopping JobHistory Org.Apache.Hadoop.Mapreduce.V2.App.Job.Job parsedJob = context.GetJob(jobId); // stop JobHistory ((JobHistory)context).Stop(); NUnit.Framework.Assert.AreEqual(((JobHistory)context).GetServiceState(), Service.STATE .Stopped); NUnit.Framework.Assert.AreEqual("CompletedMaps not correct", 2, parsedJob.GetCompletedMaps ()); NUnit.Framework.Assert.AreEqual(Runtime.GetProperty("user.name"), parsedJob.GetUserName ()); IDictionary <TaskId, Task> tasks = parsedJob.GetTasks(); NUnit.Framework.Assert.AreEqual("No of tasks not correct", 3, tasks.Count); foreach (Task task in tasks.Values) { VerifyTask(task); } IDictionary <TaskId, Task> maps = parsedJob.GetTasks(TaskType.Map); NUnit.Framework.Assert.AreEqual("No of maps not correct", 2, maps.Count); IDictionary <TaskId, Task> reduces = parsedJob.GetTasks(TaskType.Reduce); NUnit.Framework.Assert.AreEqual("No of reduces not correct", 1, reduces.Count); NUnit.Framework.Assert.AreEqual("CompletedReduce not correct", 1, parsedJob.GetCompletedReduces ()); NUnit.Framework.Assert.AreEqual("Job state not currect", JobState.Succeeded, parsedJob .GetState()); }
public virtual void TestAssignedQueue() { Configuration conf = new Configuration(); MRApp app = new TestJobHistoryEvents.MRAppWithHistory(2, 1, true, this.GetType(). FullName, true, "assignedQueue"); app.Submit(conf); Org.Apache.Hadoop.Mapreduce.V2.App.Job.Job job = app.GetContext().GetAllJobs().Values .GetEnumerator().Next(); JobId jobId = job.GetID(); Log.Info("JOBID is " + TypeConverter.FromYarn(jobId).ToString()); app.WaitForState(job, JobState.Succeeded); //make sure all events are flushed app.WaitForState(Service.STATE.Stopped); /* * Use HistoryContext to read logged events and verify the number of * completed maps */ HistoryContext context = new JobHistory(); // test start and stop states ((JobHistory)context).Init(conf); ((JobHistory)context).Start(); NUnit.Framework.Assert.IsTrue(context.GetStartTime() > 0); NUnit.Framework.Assert.AreEqual(((JobHistory)context).GetServiceState(), Service.STATE .Started); // get job before stopping JobHistory Org.Apache.Hadoop.Mapreduce.V2.App.Job.Job parsedJob = context.GetJob(jobId); // stop JobHistory ((JobHistory)context).Stop(); NUnit.Framework.Assert.AreEqual(((JobHistory)context).GetServiceState(), Service.STATE .Stopped); NUnit.Framework.Assert.AreEqual("QueueName not correct", "assignedQueue", parsedJob .GetQueueName()); }