private static void addTaskInfo(JobHistoryParser.JobInfo job, TaskType type, int id, TaskStatus.State status) { JobHistoryParser.TaskInfo task = new JobHistoryParser.TaskInfo(); task.taskId = new TaskID(job.getJobId(), type, id); task.startTime = job.getLaunchTime() + id * 1000; task.finishTime = task.startTime + id * 1000; task.taskType = type; task.counters = createCounters(); task.status = status.name(); task.attemptsMap = new HashMap<>(); addTaskAttemptInfo(task, 1); job.tasksMap.put(task.getTaskId(), task); }
job.succeededReduces = 1; job.jobStatus = JobStatus.State.SUCCEEDED.name(); job.totalCounters = createCounters(); job.mapCounters = createCounters(); job.reduceCounters = createCounters(); job.tasksMap = new HashMap<>(); addTaskInfo(job, TaskType.JOB_SETUP, 1, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.MAP, 2, TaskStatus.State.FAILED); addTaskInfo(job, TaskType.MAP, 3, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.MAP, 4, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.MAP, 5, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.MAP, 6, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.MAP, 7, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.REDUCE, 8, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.JOB_CLEANUP, 9, TaskStatus.State.SUCCEEDED); return job;
private static JobHistoryParser.JobInfo createJobInfo2() { JobHistoryParser.JobInfo job = new JobHistoryParser.JobInfo(); job.submitTime = 1317928501754L; job.finishTime = job.submitTime + 15000; job.jobid = JobID.forName("job_1317928501754_0001"); job.username = "test"; job.jobname = "Dupe counter output"; job.jobQueueName = "root.test"; job.jobConfPath = "/tmp/job.xml"; job.launchTime = job.submitTime + 1000; job.totalMaps = 1; job.totalReduces = 0; job.failedMaps = 0; job.failedReduces = 0; job.succeededMaps = 1; job.succeededReduces = 0; job.jobStatus = JobStatus.State.SUCCEEDED.name(); job.totalCounters = createDeprecatedCounters(); job.mapCounters = createDeprecatedCounters(); job.reduceCounters = createDeprecatedCounters(); job.tasksMap = new HashMap<>(); addTaskInfo(job, TaskType.JOB_SETUP, 1, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.MAP, 2, TaskStatus.State.SUCCEEDED); addTaskInfo(job, TaskType.JOB_CLEANUP, 3, TaskStatus.State.SUCCEEDED); return job; }
@Test public void testHumanDupePrinter() throws Exception { JobHistoryParser.JobInfo job = createJobInfo2(); // Counters are only part of the overview so printAll can be false or true // this does not affect the test, task counters are not printed HumanReadableHistoryViewerPrinter printer = new HumanReadableHistoryViewerPrinter(job, false, "http://", TimeZone.getTimeZone("GMT")); String outStr = run(printer); // We are not interested in anything but the duplicate counter int count1 = outStr.indexOf( "|Map-Reduce Framework |Map input records |"); Assert.assertNotEquals("First counter occurrence not found", -1, count1); int count2 = outStr.indexOf( "|Map-Reduce Framework |Map input records |", count1 + 1); Assert.assertEquals("Duplicate counter found at: " + count1 + " and " + count2, -1, count2); }
@Test public void testJSONPrinter() throws Exception { JobHistoryParser.JobInfo job = createJobInfo(); JSONHistoryViewerPrinter printer = new JSONHistoryViewerPrinter(job, false, "http://"); String outStr = run(printer); JSONAssert.assertEquals("{\n" + " \"counters\": {\n" +
@Test public void testHumanPrinter() throws Exception { JobHistoryParser.JobInfo job = createJobInfo(); HumanReadableHistoryViewerPrinter printer = new HumanReadableHistoryViewerPrinter(job, false, "http://", TimeZone.getTimeZone("GMT")); String outStr = run(printer); Assert.assertEquals("\n" + "Hadoop job: job_1317928501754_0001\n" +
@Test public void testJSONDupePrinter() throws Exception { JobHistoryParser.JobInfo job = createJobInfo2(); // Counters are part of the overview and task info // Tasks only have bogus counters in the test if that is changed printAll // must then be kept as false for this test to pass JSONHistoryViewerPrinter printer = new JSONHistoryViewerPrinter(job, false, "http://"); String outStr = run(printer); // We are not interested in anything but the duplicate counter int count1 = outStr.indexOf( "\"counterName\":\"MAP_INPUT_RECORDS\""); Assert.assertNotEquals("First counter occurrence not found", -1, count1); int count2 = outStr.indexOf( "\"counterName\":\"MAP_INPUT_RECORDS\"", count1 + 1); Assert.assertEquals("Duplicate counter found at: " + count1 + " and " + count2, -1, count2); }
@Test public void testJSONPrinterAll() throws Exception { JobHistoryParser.JobInfo job = createJobInfo(); JSONHistoryViewerPrinter printer = new JSONHistoryViewerPrinter(job, true, "http://"); String outStr = run(printer); JSONAssert.assertEquals("{\n" + " \"counters\": {\n" +
@Test public void testHumanPrinterAll() throws Exception { JobHistoryParser.JobInfo job = createJobInfo(); HumanReadableHistoryViewerPrinter printer = new HumanReadableHistoryViewerPrinter(job, true, "http://", TimeZone.getTimeZone("GMT")); String outStr = run(printer); if (System.getProperty("java.version").startsWith("1.7")) { Assert.assertEquals("\n" +