private void printBlackListedTrackers(JspWriter out, JobInProgress job) throws IOException { Map<String, Integer> trackerErrors = job.getTaskTrackerErrors(); out.print("<table border=2 cellpadding=\"5\" cellspacing=\"2\">"); out.print("<tr><th>TaskTracker</th><th>No. of Failures</th></tr>\n"); int maxErrorsPerTracker = job.getJobConf().getMaxTaskFailuresPerTracker(); for (Map.Entry<String,Integer> e : trackerErrors.entrySet()) { if (e.getValue().intValue() >= maxErrorsPerTracker) { out.print("<tr><td>" + HtmlQuoting.quoteHtmlChars(e.getKey()) + "</td><td>" + e.getValue() + "</td></tr>\n"); } } out.print("</table>\n"); }
myInstrumentation.submitJob(job.getJobConf(), jobId); String jobName = job.getJobConf().getJobName(); int jobNameLen = 64; if (jobName.length() > jobNameLen) { ") added successfully for user '" + job.getJobConf().getUser() + "' to queue '" + job.getJobConf().getQueueName() + "'" + ", source " + job.getJobConf().getJobSource()); return job.getStatus();
/** * Adds a job to the jobtracker. Make sure that the checks are inplace before * adding a job. This is the core job submission logic * @param jobId The id for the job submitted which needs to be added */ synchronized JobStatus addJob(JobID jobId, JobInProgress job) { totalSubmissions++; synchronized (jobs) { synchronized (taskScheduler) { jobs.put(job.getProfile().getJobID(), job); for (JobInProgressListener listener : jobInProgressListeners) { try { listener.jobAdded(job); } catch (IOException ioe) { LOG.warn("Failed to add and so skipping the job : " + job.getJobID() + ". Exception : " + ioe); } } } } myInstrumentation.submitJob(job.getJobConf(), jobId); LOG.info("Job " + jobId + " added successfully for user '" + job.getJobConf().getUser() + "' to queue '" + job.getJobConf().getQueueName() + "'"); return job.getStatus(); }
JobHistory.JobInfo.getJobHistoryFileName(job.getJobConf(), id); Path jobHistoryFilePath = JobHistory.JobInfo.getJobHistoryLogLocation(logFileName); JobHistory.JobInfo.recoverJobHistoryFile(job.getJobConf(), jobHistoryFilePath); pJob.getJobConf());
aclsManager.checkAccess(job, ugi, Operation.SUBMIT_JOB); } catch (AccessControlException ace) { LOG.warn("Access denied for user " + job.getJobConf().getUser() + ". Ignoring job " + jobId, ace); throw ace;
if (job.getJobConf().getUser().equals(ugi.getUserName())) { return true;
new Path(jip.getJobConf().get("mapreduce.job.dir")); try { LOG.info("Try accessing the job folder for job " + id + " as the user ("
if (job != null && job.getJobConf().getUser().equals(ugi.getUserName())) { return true;
JobEndNotifier.registerNotification(job.getJobConf(), job.getStatus()); JobHistory.JobInfo.finalizeRecovery(id, job.getJobConf()); } catch (IOException ioe) { LOG.info("Failed to finalize the log file recovery for job " + id, ioe);
checkAccess(job, QueueManager.QueueOperation.SUBMIT_JOB); } catch (IOException ioe) { LOG.warn("Access denied for user " + job.getJobConf().getUser() + ". Ignoring job " + jobId, ioe); job.fail();
JobEndNotifier.registerNotification(job.getJobConf(), job.getStatus());
private TaskInProgress createAndAddTIP(JobTracker jobtracker, JobInProgress jip, TaskType type) { JobConf conf = jip.getJobConf(); JobID id = jip.getJobID(); // now create a fake tip for this fake job TaskInProgress tip = null; if (type == TaskType.MAP) { tip = new TaskInProgress(id, "dummy", JobSplit.EMPTY_TASK_SPLIT, jobtracker, conf, jip, 0, 1); jip.maps = new TaskInProgress[] {tip}; } else if (type == TaskType.REDUCE) { tip = new TaskInProgress(id, "dummy", jip.desiredMaps(), 0, jobtracker, conf, jip, 1); jip.reduces = new TaskInProgress[] {tip}; } else if (type == TaskType.JOB_SETUP) { tip = new TaskInProgress(id, "dummy", JobSplit.EMPTY_TASK_SPLIT, jobtracker, conf, jip, 0, 1); jip.setup = new TaskInProgress[] {tip}; } else if (type == TaskType.JOB_CLEANUP) { tip = new TaskInProgress(id, "dummy", JobSplit.EMPTY_TASK_SPLIT, jobtracker, conf, jip, 0, 1); jip.cleanup = new TaskInProgress[] {tip}; } return tip; }
getCounters()); JobEndNotifier.registerNotification(this.getJobConf(), this.getStatus());
JobEndNotifier.registerNotification(job.getJobConf(), job.getStatus());