@Override public boolean apply(CheckpointExecutable executable) { try { Output output = allOutputs.get(executable.getId()); if (output == null) { return false; } ExecutableState state = output.getState(); boolean ret = statusList.contains(state); return ret; } catch (Exception e) { throw e; } } }, new Predicate<CheckpointExecutable>() {
@Override public boolean apply(CheckpointExecutable executable) { try { ExecutableOutputPO executableOutputPO = allExecutableOutputPO .get(executable.getId()); ExecutableState state = ExecutableState.valueOf(executableOutputPO.getStatus()); return statusList.contains(state); } catch (Exception e) { throw e; } } }, new Predicate<CheckpointExecutable>() {
private void cancelCheckpointJobInner(CheckpointExecutable checkpointExecutable) throws IOException { List<String> segmentIdList = Lists.newLinkedList(); List<String> jobIdList = Lists.newLinkedList(); jobIdList.add(checkpointExecutable.getId()); setRelatedIdList(checkpointExecutable, segmentIdList, jobIdList); CubeInstance cubeInstance = getCubeManager() .getCube(CubingExecutableUtil.getCubeName(checkpointExecutable.getParams())); if (!segmentIdList.isEmpty()) { List<CubeSegment> toRemoveSegments = Lists.newLinkedList(); for (String segmentId : segmentIdList) { final CubeSegment segment = cubeInstance.getSegmentById(segmentId); if (segment != null && segment.getStatus() != SegmentStatusEnum.READY) { toRemoveSegments.add(segment); } } CubeUpdate cubeBuilder = new CubeUpdate(cubeInstance); cubeBuilder.setToRemoveSegs(toRemoveSegments.toArray(new CubeSegment[toRemoveSegments.size()])); cubeBuilder.setCuboidsRecommend(Sets.<Long> newHashSet()); //Set recommend cuboids to be null getCubeManager().updateCube(cubeBuilder); } for (String jobId : jobIdList) { getExecutableManager().discardJob(jobId); } }
optimizeJob); getExecutableManager().updateCheckpointJob(checkpointExecutable.getId(), checkpointExecutable.getSubTasksForCheck());
Output output = outputs.get(job.getId()); if (output == null) { logger.warn("job output is null."); result.setLastModified(output.getLastModified()); result.setSubmitter(job.getSubmitter()); result.setUuid(job.getId()); result.setType(CubeBuildTypeEnum.CHECKPOINT); result.setStatus(parseToJobStatus(output.getState()));
public static JobInstance parseToJobInstance(CheckpointExecutable job, Map<String, Output> outputs) { if (job == null) { logger.warn("job is null."); return null; } Output output = outputs.get(job.getId()); if (output == null) { logger.warn("job output is null."); return null; } final JobInstance result = new JobInstance(); result.setName(job.getName()); result.setRelatedCube(CubingExecutableUtil.getCubeName(job.getParams())); result.setDisplayCubeName(CubingExecutableUtil.getCubeName(job.getParams())); result.setLastModified(output.getLastModified()); result.setSubmitter(job.getSubmitter()); result.setUuid(job.getId()); result.setType(CubeBuildTypeEnum.CHECKPOINT); result.setStatus(parseToJobStatus(output.getState())); result.setExecStartTime(AbstractExecutable.getStartTime(output)); result.setExecEndTime(AbstractExecutable.getEndTime(output)); result.setExecInterruptTime(AbstractExecutable.getInterruptTime(output)); result.setDuration(AbstractExecutable.getDuration(result.getExecStartTime(), result.getExecEndTime(), result.getExecInterruptTime()) / 1000); for (int i = 0; i < job.getTasks().size(); ++i) { AbstractExecutable task = job.getTasks().get(i); result.addStep(parseToJobStep(task, i, outputs.get(task.getId()))); } return result; }