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

网格计算

开发平台:

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.vaidya.statistics.job;
  19. import java.util.ArrayList;
  20. import org.apache.hadoop.mapred.JobConf;
  21. public interface JobStatisticsInterface {
  22.   
  23.   /**
  24.    * Get job configuration (job.xml) values
  25.    */
  26.   public JobConf getJobConf();
  27.   
  28.   /*
  29.    * Get Job Counters of type long
  30.    */
  31.   public long getLongValue(Enum key);
  32.   
  33.   /*
  34.    * Get job Counters of type Double
  35.    */
  36.   public double getDoubleValue(Enum key);
  37.   
  38.   /* 
  39.    * Get Job Counters of type String
  40.    */
  41.   public String getStringValue(Enum key);
  42.   
  43.   /*
  44.    * Set key value of type long
  45.    */
  46.   public void setValue(Enum key, long value);
  47.   
  48.   /*
  49.    * Set key value of type double
  50.    */
  51.   public void setValue(Enum key, double valye);
  52.   
  53.   /*
  54.    * Set key value of type String
  55.    */
  56.   public void setValue(Enum key, String value);
  57.   
  58.   /**
  59.    * @return mapTaskList : ArrayList of MapTaskStatistics
  60.    * @param mapTaskSortKey : Specific counter key used for sorting the task list
  61.    * @param datatype : indicates the data type of the counter key used for sorting
  62.    * If sort key is null then by default map tasks are sorted using map task ids.
  63.    */
  64.   public ArrayList<MapTaskStatistics> getMapTaskList(Enum mapTaskSortKey, KeyDataType dataType);
  65.   
  66.   /**
  67.    * @return reduceTaskList : ArrayList of ReduceTaskStatistics
  68.    * @param reduceTaskSortKey : Specific counter key used for sorting the task list
  69.    * @param dataType : indicates the data type of the counter key used for sorting
  70.    * If sort key is null then, by default reduce tasks are sorted using task ids.
  71.    */
  72.   public ArrayList<ReduceTaskStatistics> getReduceTaskList(Enum reduceTaskSortKey, KeyDataType dataType);
  73.   
  74.   
  75.   /*
  76.    * Print the Job Execution Statistics
  77.    */
  78.   public void printJobExecutionStatistics();
  79.   
  80.   
  81.   /*
  82.    * Job and Task statistics Key data types
  83.    */
  84.   public static enum KeyDataType {
  85.     STRING, LONG, DOUBLE
  86.   }
  87.   
  88.   /**
  89.    * Job Keys
  90.    */
  91.   public static enum JobKeys {
  92.     JOBTRACKERID, JOBID, JOBNAME, USER, SUBMIT_TIME, CONF_PATH, LAUNCH_TIME, TOTAL_MAPS, TOTAL_REDUCES,
  93.     STATUS, FINISH_TIME, FINISHED_MAPS, FINISHED_REDUCES, FAILED_MAPS, FAILED_REDUCES, 
  94.     LAUNCHED_MAPS, LAUNCHED_REDUCES, RACKLOCAL_MAPS, DATALOCAL_MAPS, HDFS_BYTES_READ,
  95.     HDFS_BYTES_WRITTEN, LOCAL_BYTES_READ, LOCAL_BYTES_WRITTEN, COMBINE_OUTPUT_RECORDS,
  96.     COMBINE_INPUT_RECORDS, REDUCE_INPUT_GROUPS, REDUCE_INPUT_RECORDS, REDUCE_OUTPUT_RECORDS,
  97.     MAP_INPUT_RECORDS, MAP_OUTPUT_RECORDS, MAP_INPUT_BYTES, MAP_OUTPUT_BYTES, MAP_HDFS_BYTES_WRITTEN,
  98.     JOBCONF
  99.    }
  100.   
  101.   /**
  102.    * Map Task Keys
  103.    */
  104.   public static enum MapTaskKeys {
  105.     TASK_ID, TASK_TYPE, START_TIME, STATUS, FINISH_TIME, HDFS_BYTES_READ, HDFS_BYTES_WRITTEN,
  106.     LOCAL_BYTES_READ, LOCAL_BYTES_WRITTEN, COMBINE_OUTPUT_RECORDS, COMBINE_INPUT_RECORDS, 
  107.     OUTPUT_RECORDS, INPUT_RECORDS, INPUT_BYTES, OUTPUT_BYTES, NUM_ATTEMPTS, ATTEMPT_ID,
  108.     HOSTNAME, SPLITS
  109.   }
  110.   
  111.   /**
  112.    * Reduce Task Keys
  113.    */
  114.   public static enum ReduceTaskKeys {
  115.     
  116.     TASK_ID, TASK_TYPE, START_TIME, STATUS, FINISH_TIME, HDFS_BYTES_READ, HDFS_BYTES_WRITTEN,
  117.     LOCAL_BYTES_READ, LOCAL_BYTES_WRITTEN, COMBINE_OUTPUT_RECORDS, COMBINE_INPUT_RECORDS, 
  118.     OUTPUT_RECORDS, INPUT_RECORDS, NUM_ATTEMPTS, ATTEMPT_ID, HOSTNAME, SHUFFLE_FINISH_TIME,
  119.     SORT_FINISH_TIME, INPUT_GROUPS
  120.   }
  121. }