diff --git shims/src/hadoop23/org/apache/pig/backend/hadoop23/PigJobControl.java shims/src/hadoop23/org/apache/pig/backend/hadoop23/PigJobControl.java index 6b03b50..411d4fc 100644 --- shims/src/hadoop23/org/apache/pig/backend/hadoop23/PigJobControl.java +++ shims/src/hadoop23/org/apache/pig/backend/hadoop23/PigJobControl.java @@ -20,6 +20,7 @@ package org.apache.pig.backend.hadoop23; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Iterator; +import java.util.List; import java.util.LinkedList; import org.apache.commons.logging.Log; @@ -179,7 +180,50 @@ public class PigJobControl extends JobControl { } while(it.hasNext()) { ControlledJob j = it.next(); - log.debug("Checking state of job "+j); + + // For logging + StringBuffer sb = new StringBuffer(); + + // Job name + sb.append("job name:\t"); + String jobName = null; + if (j.getJob().getStatus() == null) { + jobName = null; + log.warn("Unable to get job name, as job status is null."); + } else { + jobName = j.getJobName(); + } + sb.append(jobName).append("\n"); // still ok when jobName is null, "null" is appended + + // Others + sb.append("job id:\t").append(j.getJobID()).append("\n"); + sb.append("job state:\t").append(j.getJobState()).append("\n"); + sb.append("job mapred id:\t").append(j.getJobID()).append("\n"); + sb.append("job message:\t").append(j.getMessage()).append("\n"); + + // The jobs the current job depends on + List dependentJobs = j.getDependentJobs(); + if (dependentJobs == null || dependentJobs.size() == 0) { + sb.append("job has no depending job:\t").append("\n"); + } else { + sb.append("job has ").append(dependentJobs.size()). + append(" depending jobs:\n"); + for (int i = 0; i < dependentJobs.size(); i++) { + sb.append("\t depending job ").append(i).append(":\t"); + if (dependentJobs.get(i).getJob().getStatus() == null) { + jobName = null; + log.warn("Unable to get job name, as job status is null."); + } else { + jobName = dependentJobs.get(i).getJobName(); + } + sb.append(jobName).append("\n"); // still ok when jobName is null, "null" is appended + } + } + + // Do logging + log.debug("Checking state of job " + sb.toString()); + + // Check job state and take actions switch(checkState(j)) { case SUCCESS: getJobs(successfulJobs).add(j);