Ejemplo n.º 1
0
 @Override
 public Value<MapReduceResult<R>> run(
     ResultAndCounters<List<AppEngineFile>> mapResult, ShuffleResult<K, V, O> shuffleResult) {
   @SuppressWarnings("unchecked")
   PromisedValue<MapReduceResult<R>> result = (PromisedValue) newPromise(MapReduceResult.class);
   String shardedJobId = mrJobId + "-reduce";
   startShardedJob(
       mrSpec.getJobName() + " (reduce phase)",
       shardedJobId,
       mapResult.getCounters(),
       shuffleResult.getReducerReaders(),
       mrSpec.getOutput(),
       shuffleResult.getReducerWriters(),
       new TaskCreator<KeyValue<K, ReducerInput<V>>, O, ReducerContext<O>>() {
         @Override
         public WorkerShardTask<KeyValue<K, ReducerInput<V>>, O, ReducerContext<O>> createTask(
             int shard,
             int shardCount,
             InputReader<KeyValue<K, ReducerInput<V>>> reader,
             OutputWriter<O> writer) {
           return new ReduceShardTask<K, V, O>(
               mrJobId,
               shard,
               shardCount,
               reader,
               mrSpec.getReducer(),
               writer,
               settings.getMillisPerSlice());
         }
       },
       result.getHandle(),
       settings);
   setStatusConsoleUrl(settings.getBaseUrl() + "detail?mapreduce_id=" + shardedJobId);
   return result;
 }
Ejemplo n.º 2
0
 @Override
 public Value<Void> run(ShuffleResult<K, V, O> shuffleResult) {
   futureCall(
       new DeleteFilesJob("" + this),
       immediate(shuffleResult.getReducerInputFiles()),
       Util.jobSettings(settings));
   return immediate(null);
 }