use of org.apache.hadoop.mapreduce.JobID in project ignite by apache.
the class HadoopUtils method status.
/**
* Convert Ignite job status to Hadoop job status.
*
* @param status Ignite job status.
* @return Hadoop job status.
*/
public static JobStatus status(HadoopJobStatus status, Configuration conf) {
JobID jobId = new JobID(status.jobId().globalId().toString(), status.jobId().localId());
float setupProgress = 0;
float mapProgress = 0;
float reduceProgress = 0;
float cleanupProgress = 0;
JobStatus.State state = JobStatus.State.RUNNING;
switch(status.jobPhase()) {
case PHASE_SETUP:
setupProgress = 0.42f;
break;
case PHASE_MAP:
setupProgress = 1;
mapProgress = 1f - status.pendingMapperCnt() / (float) status.totalMapperCnt();
break;
case PHASE_REDUCE:
setupProgress = 1;
mapProgress = 1;
if (status.totalReducerCnt() > 0)
reduceProgress = 1f - status.pendingReducerCnt() / (float) status.totalReducerCnt();
else
reduceProgress = 1f;
break;
case PHASE_CANCELLING:
case PHASE_COMPLETE:
if (!status.isFailed()) {
setupProgress = 1;
mapProgress = 1;
reduceProgress = 1;
cleanupProgress = 1;
state = JobStatus.State.SUCCEEDED;
} else
state = JobStatus.State.FAILED;
break;
default:
assert false;
}
return new JobStatus(jobId, setupProgress, mapProgress, reduceProgress, cleanupProgress, state, JobPriority.NORMAL, status.user(), status.jobName(), jobFile(conf, status.user(), jobId).toString(), "N/A");
}
Aggregations