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

网格计算

开发平台:

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.DataInput;
  20. import java.io.IOException;
  21. /**
  22.  * TaskAttemptID represents the immutable and unique identifier for 
  23.  * a task attempt. Each task attempt is one particular instance of a Map or
  24.  * Reduce Task identified by its TaskID. 
  25.  * 
  26.  * TaskAttemptID consists of 2 parts. First part is the 
  27.  * {@link TaskID}, that this TaskAttemptID belongs to.
  28.  * Second part is the task attempt number. <br> 
  29.  * An example TaskAttemptID is : 
  30.  * <code>attempt_200707121733_0003_m_000005_0</code> , which represents the
  31.  * zeroth task attempt for the fifth map task in the third job 
  32.  * running at the jobtracker started at <code>200707121733</code>.
  33.  * <p>
  34.  * Applications should never construct or parse TaskAttemptID strings
  35.  * , but rather use appropriate constructors or {@link #forName(String)} 
  36.  * method. 
  37.  * 
  38.  * @see JobID
  39.  * @see TaskID
  40.  */
  41. @Deprecated
  42. public class TaskAttemptID extends org.apache.hadoop.mapreduce.TaskAttemptID {
  43.   
  44.   /**
  45.    * Constructs a TaskAttemptID object from given {@link TaskID}.  
  46.    * @param taskId TaskID that this task belongs to  
  47.    * @param id the task attempt number
  48.    */
  49.   public TaskAttemptID(TaskID taskId, int id) {
  50.     super(taskId, id);
  51.   }
  52.   
  53.   /**
  54.    * Constructs a TaskId object from given parts.
  55.    * @param jtIdentifier jobTracker identifier
  56.    * @param jobId job number 
  57.    * @param isMap whether the tip is a map 
  58.    * @param taskId taskId number
  59.    * @param id the task attempt number
  60.    */
  61.   public TaskAttemptID(String jtIdentifier, int jobId, boolean isMap, 
  62.                        int taskId, int id) {
  63.     this(new TaskID(jtIdentifier, jobId, isMap, taskId), id);
  64.   }
  65.   
  66.   public TaskAttemptID() { 
  67.     super(new TaskID(), 0);
  68.   }
  69.   /**
  70.    * Downgrade a new TaskAttemptID to an old one
  71.    * @param old the new id
  72.    * @return either old or a new TaskAttemptID constructed to match old
  73.    */
  74.   public static 
  75.   TaskAttemptID downgrade(org.apache.hadoop.mapreduce.TaskAttemptID old) {
  76.     if (old instanceof TaskAttemptID) {
  77.       return (TaskAttemptID) old;
  78.     } else {
  79.       return new TaskAttemptID(TaskID.downgrade(old.getTaskID()), old.getId());
  80.     }
  81.   }
  82.   public TaskID getTaskID() {
  83.     return (TaskID) super.getTaskID();
  84.   }
  85.   public JobID getJobID() {
  86.     return (JobID) super.getJobID();
  87.   }
  88.   @Deprecated
  89.   public static TaskAttemptID read(DataInput in) throws IOException {
  90.     TaskAttemptID taskId = new TaskAttemptID();
  91.     taskId.readFields(in);
  92.     return taskId;
  93.   }
  94.   
  95.   /** Construct a TaskAttemptID object from given string 
  96.    * @return constructed TaskAttemptID object or null if the given String is null
  97.    * @throws IllegalArgumentException if the given string is malformed
  98.    */
  99.   public static TaskAttemptID forName(String str
  100.                                       ) throws IllegalArgumentException {
  101.     return (TaskAttemptID) 
  102.              org.apache.hadoop.mapreduce.TaskAttemptID.forName(str);
  103.   }
  104.   
  105.   /** 
  106.    * Returns a regex pattern which matches task attempt IDs. Arguments can 
  107.    * be given null, in which case that part of the regex will be generic.  
  108.    * For example to obtain a regex matching <i>all task attempt IDs</i> 
  109.    * of <i>any jobtracker</i>, in <i>any job</i>, of the <i>first 
  110.    * map task</i>, we would use :
  111.    * <pre> 
  112.    * TaskAttemptID.getTaskAttemptIDsPattern(null, null, true, 1, null);
  113.    * </pre>
  114.    * which will return :
  115.    * <pre> "attempt_[^_]*_[0-9]*_m_000001_[0-9]*" </pre> 
  116.    * @param jtIdentifier jobTracker identifier, or null
  117.    * @param jobId job number, or null
  118.    * @param isMap whether the tip is a map, or null 
  119.    * @param taskId taskId number, or null
  120.    * @param attemptId the task attempt number, or null
  121.    * @return a regex pattern matching TaskAttemptIDs
  122.    */
  123.   @Deprecated
  124.   public static String getTaskAttemptIDsPattern(String jtIdentifier,
  125.       Integer jobId, Boolean isMap, Integer taskId, Integer attemptId) {
  126.     StringBuilder builder = new StringBuilder(ATTEMPT).append(SEPARATOR);
  127.     builder.append(getTaskAttemptIDsPatternWOPrefix(jtIdentifier, jobId,
  128.         isMap, taskId, attemptId));
  129.     return builder.toString();
  130.   }
  131.   
  132.   @Deprecated
  133.   static StringBuilder getTaskAttemptIDsPatternWOPrefix(String jtIdentifier
  134.       , Integer jobId, Boolean isMap, Integer taskId, Integer attemptId) {
  135.     StringBuilder builder = new StringBuilder();
  136.     builder.append(TaskID.getTaskIDsPatternWOPrefix(jtIdentifier
  137.         , jobId, isMap, taskId))
  138.         .append(SEPARATOR)
  139.         .append(attemptId != null ? attemptId : "[0-9]*");
  140.     return builder;
  141.   }
  142. }