RunningJob.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>RunningJob</code> is the user-interface to query for details on a 
  22.  * running Map-Reduce job.
  23.  * 
  24.  * <p>Clients can get hold of <code>RunningJob</code> via the {@link JobClient}
  25.  * and then query the running-job for details such as name, configuration, 
  26.  * progress etc.</p> 
  27.  * 
  28.  * @see JobClient
  29.  */
  30. public interface RunningJob {
  31.   /**
  32.    * Get the job identifier.
  33.    * 
  34.    * @return the job identifier.
  35.    */
  36.   public JobID getID();
  37.   
  38.   /** @deprecated This method is deprecated and will be removed. Applications should 
  39.    * rather use {@link #getID()}.
  40.    */
  41.   @Deprecated
  42.   public String getJobID();
  43.   
  44.   /**
  45.    * Get the name of the job.
  46.    * 
  47.    * @return the name of the job.
  48.    */
  49.   public String getJobName();
  50.   /**
  51.    * Get the path of the submitted job configuration.
  52.    * 
  53.    * @return the path of the submitted job configuration.
  54.    */
  55.   public String getJobFile();
  56.   /**
  57.    * Get the URL where some job progress information will be displayed.
  58.    * 
  59.    * @return the URL where some job progress information will be displayed.
  60.    */
  61.   public String getTrackingURL();
  62.   /**
  63.    * Get the <i>progress</i> of the job's map-tasks, as a float between 0.0 
  64.    * and 1.0.  When all map tasks have completed, the function returns 1.0.
  65.    * 
  66.    * @return the progress of the job's map-tasks.
  67.    * @throws IOException
  68.    */
  69.   public float mapProgress() throws IOException;
  70.   /**
  71.    * Get the <i>progress</i> of the job's reduce-tasks, as a float between 0.0 
  72.    * and 1.0.  When all reduce tasks have completed, the function returns 1.0.
  73.    * 
  74.    * @return the progress of the job's reduce-tasks.
  75.    * @throws IOException
  76.    */
  77.   public float reduceProgress() throws IOException;
  78.   /**
  79.    * Get the <i>progress</i> of the job's cleanup-tasks, as a float between 0.0 
  80.    * and 1.0.  When all cleanup tasks have completed, the function returns 1.0.
  81.    * 
  82.    * @return the progress of the job's cleanup-tasks.
  83.    * @throws IOException
  84.    */
  85.   public float cleanupProgress() throws IOException;
  86.   /**
  87.    * Get the <i>progress</i> of the job's setup-tasks, as a float between 0.0 
  88.    * and 1.0.  When all setup tasks have completed, the function returns 1.0.
  89.    * 
  90.    * @return the progress of the job's setup-tasks.
  91.    * @throws IOException
  92.    */
  93.   public float setupProgress() throws IOException;
  94.   /**
  95.    * Check if the job is finished or not. 
  96.    * This is a non-blocking call.
  97.    * 
  98.    * @return <code>true</code> if the job is complete, else <code>false</code>.
  99.    * @throws IOException
  100.    */
  101.   public boolean isComplete() throws IOException;
  102.   /**
  103.    * Check if the job completed successfully. 
  104.    * 
  105.    * @return <code>true</code> if the job succeeded, else <code>false</code>.
  106.    * @throws IOException
  107.    */
  108.   public boolean isSuccessful() throws IOException;
  109.   
  110.   /**
  111.    * Blocks until the job is complete.
  112.    * 
  113.    * @throws IOException
  114.    */
  115.   public void waitForCompletion() throws IOException;
  116.   /**
  117.    * Returns the current state of the Job.
  118.    * {@link JobStatus}
  119.    * 
  120.    * @throws IOException
  121.    */
  122.   public int getJobState() throws IOException;
  123.   
  124.   /**
  125.    * Kill the running job.  Blocks until all job tasks have been
  126.    * killed as well.  If the job is no longer running, it simply returns.
  127.    * 
  128.    * @throws IOException
  129.    */
  130.   public void killJob() throws IOException;
  131.   
  132.   /**
  133.    * Set the priority of a running job.
  134.    * @param priority the new priority for the job.
  135.    * @throws IOException
  136.    */
  137.   public void setJobPriority(String priority) throws IOException;
  138.   
  139.   /**
  140.    * Get events indicating completion (success/failure) of component tasks.
  141.    *  
  142.    * @param startFrom index to start fetching events from
  143.    * @return an array of {@link TaskCompletionEvent}s
  144.    * @throws IOException
  145.    */
  146.   public TaskCompletionEvent[] getTaskCompletionEvents(int startFrom) 
  147.   throws IOException;
  148.   
  149.   /**
  150.    * Kill indicated task attempt.
  151.    * 
  152.    * @param taskId the id of the task to be terminated.
  153.    * @param shouldFail if true the task is failed and added to failed tasks 
  154.    *                   list, otherwise it is just killed, w/o affecting 
  155.    *                   job failure status.  
  156.    * @throws IOException
  157.    */
  158.   public void killTask(TaskAttemptID taskId, boolean shouldFail) throws IOException;
  159.   
  160.   /** @deprecated Applications should rather use {@link #killTask(TaskAttemptID, boolean)}*/
  161.   @Deprecated
  162.   public void killTask(String taskId, boolean shouldFail) throws IOException;
  163.   
  164.   /**
  165.    * Gets the counters for this job.
  166.    * 
  167.    * @return the counters for this job.
  168.    * @throws IOException
  169.    */
  170.   public Counters getCounters() throws IOException;
  171.   
  172.   /**
  173.    * Gets the diagnostic messages for a given task attempt.
  174.    * @param taskid
  175.    * @return the list of diagnostic messages for the task
  176.    * @throws IOException
  177.    */
  178.   public String[] getTaskDiagnostics(TaskAttemptID taskid) throws IOException;
  179. }