public static TaskAttemptStateProto convertToProtoFormat(TaskAttemptState e) { return TaskAttemptStateProto.valueOf(TASK_ATTEMPT_STATE_PREFIX + e.name()); } public static TaskAttemptState convertFromProtoFormat(TaskAttemptStateProto e) {
public static TaskAttemptStateProto convertToProtoFormat(TaskAttemptState e) { return TaskAttemptStateProto.valueOf(TASK_ATTEMPT_STATE_PREFIX + e.name()); } public static TaskAttemptState convertFromProtoFormat(TaskAttemptStateProto e) {
public static TaskAttemptStateProto convertToProtoFormat(TaskAttemptState e) { return TaskAttemptStateProto.valueOf(TASK_ATTEMPT_STATE_PREFIX + e.name()); } public static TaskAttemptState convertFromProtoFormat(TaskAttemptStateProto e) {
public static TaskAttemptStateProto convertToProtoFormat(TaskAttemptState e) { return TaskAttemptStateProto.valueOf(TASK_ATTEMPT_STATE_PREFIX + e.name()); } public static TaskAttemptState convertFromProtoFormat(TaskAttemptStateProto e) {
/** * Absorbs one TaskAttemptStatus * * @param reportedStatus the status report that we got from a task attempt * that we want to fold into the speculation data for this job * @param timestamp the time this status corresponds to. This matters * because statuses contain progress. */ protected void statusUpdate(TaskAttemptStatus reportedStatus, long timestamp) { String stateString = reportedStatus.taskState.toString(); TaskAttemptId attemptID = reportedStatus.id; TaskId taskID = attemptID.getTaskId(); Job job = context.getJob(taskID.getJobId()); if (job == null) { return; } Task task = job.getTask(taskID); if (task == null) { return; } estimator.updateAttempt(reportedStatus, timestamp); if (stateString.equals(TaskAttemptState.RUNNING.name())) { runningTasks.putIfAbsent(taskID, Boolean.TRUE); } else { runningTasks.remove(taskID, Boolean.TRUE); if (!stateString.equals(TaskAttemptState.STARTING.name())) { runningTaskAttemptStatistics.remove(attemptID); } } }
/** * Absorbs one TaskAttemptStatus * * @param reportedStatus the status report that we got from a task attempt * that we want to fold into the speculation data for this job * @param timestamp the time this status corresponds to. This matters * because statuses contain progress. */ protected void statusUpdate(TaskAttemptStatus reportedStatus, long timestamp) { String stateString = reportedStatus.taskState.toString(); TaskAttemptId attemptID = reportedStatus.id; TaskId taskID = attemptID.getTaskId(); Job job = context.getJob(taskID.getJobId()); if (job == null) { return; } Task task = job.getTask(taskID); if (task == null) { return; } estimator.updateAttempt(reportedStatus, timestamp); if (stateString.equals(TaskAttemptState.RUNNING.name())) { runningTasks.putIfAbsent(taskID, Boolean.TRUE); } else { runningTasks.remove(taskID, Boolean.TRUE); if (!stateString.equals(TaskAttemptState.STARTING.name())) { runningTaskAttemptStatistics.remove(attemptID); } } }
/** * Absorbs one TaskAttemptStatus * * @param reportedStatus the status report that we got from a task attempt * that we want to fold into the speculation data for this job * @param timestamp the time this status corresponds to. This matters * because statuses contain progress. */ protected void statusUpdate(TaskAttemptStatus reportedStatus, long timestamp) { String stateString = reportedStatus.taskState.toString(); TaskAttemptId attemptID = reportedStatus.id; TaskId taskID = attemptID.getTaskId(); Job job = context.getJob(taskID.getJobId()); if (job == null) { return; } Task task = job.getTask(taskID); if (task == null) { return; } estimator.updateAttempt(reportedStatus, timestamp); if (stateString.equals(TaskAttemptState.RUNNING.name())) { runningTasks.putIfAbsent(taskID, Boolean.TRUE); } else { runningTasks.remove(taskID, Boolean.TRUE); if (!stateString.equals(TaskAttemptState.STARTING.name())) { runningTaskAttemptStatistics.remove(attemptID); } } }
status.id = attempt.getID(); status.progress = attempt.getProgress(); status.stateString = attempt.getState().name(); status.taskState = attempt.getState(); SpeculatorEvent event = new SpeculatorEvent(status, clock.getTime());