Example #1
0
  /**
   * Creates new shuffle job.
   *
   * @param jobId Job ID.
   * @return Created shuffle job.
   * @throws GridException If job creation failed.
   */
  private GridHadoopShuffleJob<UUID> newJob(GridHadoopJobId jobId) throws GridException {
    GridHadoopMapReducePlan plan = ctx.jobTracker().plan(jobId);

    GridHadoopShuffleJob<UUID> job =
        new GridHadoopShuffleJob<>(
            ctx.localNodeId(),
            ctx.localNodeId(),
            log,
            ctx.jobTracker().job(jobId, null),
            mem,
            plan.reducers(),
            plan.reducers(ctx.localNodeId()));

    UUID[] rdcAddrs = new UUID[plan.reducers()];

    for (int i = 0; i < rdcAddrs.length; i++) {
      UUID nodeId = plan.nodeForReducer(i);

      assert nodeId != null : "Plan is missing node for reducer [plan=" + plan + ", rdc=" + i + ']';

      rdcAddrs[i] = nodeId;
    }

    boolean init = job.initializeReduceAddresses(rdcAddrs);

    assert init;

    return job;
  }