private void constructTaskReport() { loadAllTaskAttempts(); this.report = Records.newRecord(TaskReport.class); report.setTaskId(taskId); long minLaunchTime = Long.MAX_VALUE; for(TaskAttempt attempt: attempts.values()) { minLaunchTime = Math.min(minLaunchTime, attempt.getLaunchTime()); } minLaunchTime = minLaunchTime == Long.MAX_VALUE ? -1 : minLaunchTime; report.setStartTime(minLaunchTime); report.setFinishTime(taskInfo.getFinishTime()); report.setTaskState(getState()); report.setProgress(getProgress()); Counters counters = getCounters(); if (counters == null) { counters = EMPTY_COUNTERS; } report.setRawCounters(counters); if (successfulAttempt != null) { report.setSuccessfulAttempt(successfulAttempt); } report.addAllDiagnostics(reportDiagnostics); report .addAllRunningAttempts(new ArrayList<TaskAttemptId>(attempts.keySet())); }
@Test public void testSetRawCounters() { // Create basic class TaskReport report = Records.newRecord(TaskReport.class); org.apache.hadoop.mapreduce.Counters rCounters = MockJobs.newCounters(); // Set raw counters report.setRawCounters(rCounters); // Verify getCounters converts properly from raw to real Counters counters = report.getCounters(); assertNotEquals(null, counters); }
@Test public void testSetNonNullRawCountersToNull() { // Create basic class TaskReport report = Records.newRecord(TaskReport.class); // Set raw counters org.apache.hadoop.mapreduce.Counters rCounters = MockJobs.newCounters(); report.setRawCounters(rCounters); // Verify getCounters converts properly from raw to real Counters counters = report.getCounters(); assertNotEquals(null, counters); // Clear counters to null and then verify report.setRawCounters(null); assertEquals(null, report.getCounters()); assertEquals(null, report.getRawCounters()); } }
@Test public void testSetRawCountersToNull() { // Create basic class TaskReport report = Records.newRecord(TaskReport.class); // Set raw counters to null report.setRawCounters(null); // Verify properties still null assertEquals(null, report.getCounters()); assertEquals(null, report.getRawCounters()); }
@Test public void testCountersOverRawCounters() { // Create basic class TaskReport report = Records.newRecord(TaskReport.class); org.apache.hadoop.mapreduce.Counters rCounters = MockJobs.newCounters(); Counters altCounters = TypeConverter.toYarn(rCounters); // Set raw counters report.setRawCounters(rCounters); // Set real counters report.setCounters(altCounters); // Verify real counters has priority over raw Counters counters = report.getCounters(); assertNotEquals(null, counters); assertNotEquals(rCounters, altCounters); assertEquals(counters, altCounters); }
@Test public void testSetNonNullCountersToNull() { // Create basic class TaskReport report = Records.newRecord(TaskReport.class); // Set raw counters org.apache.hadoop.mapreduce.Counters rCounters = MockJobs.newCounters(); report.setRawCounters(rCounters); // Verify getCounters converts properly from raw to real Counters counters = report.getCounters(); assertNotEquals(null, counters); // Clear counters to null and then verify report.setCounters(null); assertEquals(null, report.getCounters()); assertEquals(null, report.getRawCounters()); }