MapReduceSpecification spec = appSpec.getMapReduce().get(program.getName());
Preconditions.checkNotNull(spec, "Missing MapReduceSpecification for %s", program.getName());
// Optionally get runId. If the map-reduce started by other program (e.g. Workflow), it inherit the runId.
Arguments arguments = options.getArguments();
RunId runId = arguments.hasOption(ProgramOptionConstants.RUN_ID)
? RunIds.fromString(arguments.getOption(ProgramOptionConstants.RUN_ID))
: RunIds.generate();
long logicalStartTime = arguments.hasOption(ProgramOptionConstants.LOGICAL_START_TIME)
? Long.parseLong(arguments