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

网格计算

开发平台:

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. import java.util.Collection;
  21. /**
  22.  * Manages information about the {@link TaskTracker}s running on a cluster.
  23.  * This interface exits primarily to test the {@link JobTracker}, and is not
  24.  * intended to be implemented by users.
  25.  */
  26. interface TaskTrackerManager {
  27.   /**
  28.    * @return A collection of the {@link TaskTrackerStatus} for the tasktrackers
  29.    * being managed.
  30.    */
  31.   public Collection<TaskTrackerStatus> taskTrackers();
  32.   
  33.   /**
  34.    * @return The number of unique hosts running tasktrackers.
  35.    */
  36.   public int getNumberOfUniqueHosts();
  37.   
  38.   /**
  39.    * @return a summary of the cluster's status.
  40.    */
  41.   public ClusterStatus getClusterStatus();
  42.   /**
  43.    * Registers a {@link JobInProgressListener} for updates from this
  44.    * {@link TaskTrackerManager}.
  45.    * @param jobInProgressListener the {@link JobInProgressListener} to add
  46.    */
  47.   public void addJobInProgressListener(JobInProgressListener listener);
  48.   /**
  49.    * Unregisters a {@link JobInProgressListener} from this
  50.    * {@link TaskTrackerManager}.
  51.    * @param jobInProgressListener the {@link JobInProgressListener} to remove
  52.    */
  53.   public void removeJobInProgressListener(JobInProgressListener listener);
  54.   /**
  55.    * Return the {@link QueueManager} which manages the queues in this
  56.    * {@link TaskTrackerManager}.
  57.    *
  58.    * @return the {@link QueueManager}
  59.    */
  60.   public QueueManager getQueueManager();
  61.   
  62.   /**
  63.    * Return the current heartbeat interval that's used by {@link TaskTracker}s.
  64.    *
  65.    * @return the heartbeat interval used by {@link TaskTracker}s
  66.    */
  67.   public int getNextHeartbeatInterval();
  68.   /**
  69.    * Kill the job identified by jobid
  70.    * 
  71.    * @param jobid
  72.    * @throws IOException
  73.    */
  74.   public void killJob(JobID jobid)
  75.       throws IOException;
  76.   /**
  77.    * Obtain the job object identified by jobid
  78.    * 
  79.    * @param jobid
  80.    * @return jobInProgress object
  81.    */
  82.   public JobInProgress getJob(JobID jobid);
  83. }