OutputCommitter.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:6k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.mapred;
  19. import java.io.IOException;
  20. /**
  21.  * <code>OutputCommitter</code> describes the commit of task output for a 
  22.  * Map-Reduce job.
  23.  *
  24.  * <p>The Map-Reduce framework relies on the <code>OutputCommitter</code> of 
  25.  * the job to:<p>
  26.  * <ol>
  27.  *   <li>
  28.  *   Setup the job during initialization. For example, create the temporary 
  29.  *   output directory for the job during the initialization of the job.
  30.  *   </li>
  31.  *   <li>
  32.  *   Cleanup the job after the job completion. For example, remove the
  33.  *   temporary output directory after the job completion. 
  34.  *   </li>
  35.  *   <li>
  36.  *   Setup the task temporary output.
  37.  *   </li> 
  38.  *   <li>
  39.  *   Check whether a task needs a commit. This is to avoid the commit
  40.  *   procedure if a task does not need commit.
  41.  *   </li>
  42.  *   <li>
  43.  *   Commit of the task output.
  44.  *   </li>  
  45.  *   <li>
  46.  *   Discard the task commit.
  47.  *   </li>
  48.  * </ol>
  49.  * 
  50.  * @see FileOutputCommitter 
  51.  * @see JobContext
  52.  * @see TaskAttemptContext 
  53.  * @deprecated Use {@link org.apache.hadoop.mapreduce.OutputCommitter} instead.
  54.  */
  55. @Deprecated
  56. public abstract class OutputCommitter 
  57.                 extends org.apache.hadoop.mapreduce.OutputCommitter {
  58.   /**
  59.    * For the framework to setup the job output during initialization
  60.    * 
  61.    * @param jobContext Context of the job whose output is being written.
  62.    * @throws IOException if temporary output could not be created
  63.    */
  64.   public abstract void setupJob(JobContext jobContext) throws IOException;
  65.   /**
  66.    * For cleaning up the job's output after job completion
  67.    * 
  68.    * @param jobContext Context of the job whose output is being written.
  69.    * @throws IOException
  70.    */
  71.   public abstract void cleanupJob(JobContext jobContext) throws IOException;
  72.   /**
  73.    * Sets up output for the task.
  74.    * 
  75.    * @param taskContext Context of the task whose output is being written.
  76.    * @throws IOException
  77.    */
  78.   public abstract void setupTask(TaskAttemptContext taskContext)
  79.   throws IOException;
  80.   
  81.   /**
  82.    * Check whether task needs a commit
  83.    * 
  84.    * @param taskContext
  85.    * @return true/false
  86.    * @throws IOException
  87.    */
  88.   public abstract boolean needsTaskCommit(TaskAttemptContext taskContext)
  89.   throws IOException;
  90.   /**
  91.    * To promote the task's temporary output to final output location
  92.    * 
  93.    * The task's output is moved to the job's output directory.
  94.    * 
  95.    * @param taskContext Context of the task whose output is being written.
  96.    * @throws IOException if commit is not 
  97.    */
  98.   public abstract void commitTask(TaskAttemptContext taskContext)
  99.   throws IOException;
  100.   
  101.   /**
  102.    * Discard the task output
  103.    * 
  104.    * @param taskContext
  105.    * @throws IOException
  106.    */
  107.   public abstract void abortTask(TaskAttemptContext taskContext)
  108.   throws IOException;
  109.   /**
  110.    * This method implements the new interface by calling the old method. Note
  111.    * that the input types are different between the new and old apis and this
  112.    * is a bridge between the two.
  113.    */
  114.   @Override
  115.   public final void setupJob(org.apache.hadoop.mapreduce.JobContext jobContext
  116.                              ) throws IOException {
  117.     setupJob((JobContext) jobContext);
  118.   }
  119.   /**
  120.    * This method implements the new interface by calling the old method. Note
  121.    * that the input types are different between the new and old apis and this
  122.    * is a bridge between the two.
  123.    */
  124.   @Override
  125.   public final void cleanupJob(org.apache.hadoop.mapreduce.JobContext context
  126.                                ) throws IOException {
  127.     cleanupJob((JobContext) context);
  128.   }
  129.   /**
  130.    * This method implements the new interface by calling the old method. Note
  131.    * that the input types are different between the new and old apis and this
  132.    * is a bridge between the two.
  133.    */
  134.   @Override
  135.   public final 
  136.   void setupTask(org.apache.hadoop.mapreduce.TaskAttemptContext taskContext
  137.                  ) throws IOException {
  138.     setupTask((TaskAttemptContext) taskContext);
  139.   }
  140.   
  141.   /**
  142.    * This method implements the new interface by calling the old method. Note
  143.    * that the input types are different between the new and old apis and this
  144.    * is a bridge between the two.
  145.    */
  146.   @Override
  147.   public final boolean 
  148.     needsTaskCommit(org.apache.hadoop.mapreduce.TaskAttemptContext taskContext
  149.                     ) throws IOException {
  150.     return needsTaskCommit((TaskAttemptContext) taskContext);
  151.   }
  152.   /**
  153.    * This method implements the new interface by calling the old method. Note
  154.    * that the input types are different between the new and old apis and this
  155.    * is a bridge between the two.
  156.    */
  157.   @Override
  158.   public final 
  159.   void commitTask(org.apache.hadoop.mapreduce.TaskAttemptContext taskContext
  160.                   ) throws IOException {
  161.     commitTask((TaskAttemptContext) taskContext);
  162.   }
  163.   
  164.   /**
  165.    * This method implements the new interface by calling the old method. Note
  166.    * that the input types are different between the new and old apis and this
  167.    * is a bridge between the two.
  168.    */
  169.   @Override
  170.   public final 
  171.   void abortTask(org.apache.hadoop.mapreduce.TaskAttemptContext taskContext
  172.                  ) throws IOException {
  173.     abortTask((TaskAttemptContext) taskContext);
  174.   }
  175. }