blob: 8765496ef03900208f3683cbe21b669c33f99b87 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.vaidya.statistics.job;
import java.util.ArrayList;
import org.apache.hadoop.mapred.JobConf;
public interface JobStatisticsInterface {
/**
* Get job configuration (job.xml) values
*/
public JobConf getJobConf();
/*
* Get Job Counters of type long
*/
public long getLongValue(Enum key);
/*
* Get job Counters of type Double
*/
public double getDoubleValue(Enum key);
/*
* Get Job Counters of type String
*/
public String getStringValue(Enum key);
/*
* Set key value of type long
*/
public void setValue(Enum key, long value);
/*
* Set key value of type double
*/
public void setValue(Enum key, double valye);
/*
* Set key value of type String
*/
public void setValue(Enum key, String value);
/**
* @return mapTaskList : ArrayList of MapTaskStatistics
* @param mapTaskSortKey : Specific counter key used for sorting the task list
* @param dataType : indicates the data type of the counter key used for sorting
* If sort key is null then by default map tasks are sorted using map task ids.
*/
public ArrayList<MapTaskStatistics> getMapTaskList(Enum mapTaskSortKey, KeyDataType dataType);
/**
* @return reduceTaskList : ArrayList of ReduceTaskStatistics
* @param reduceTaskSortKey : Specific counter key used for sorting the task list
* @param dataType : indicates the data type of the counter key used for sorting
* If sort key is null then, by default reduce tasks are sorted using task ids.
*/
public ArrayList<ReduceTaskStatistics> getReduceTaskList(Enum reduceTaskSortKey, KeyDataType dataType);
/*
* Print the Job Execution Statistics
*/
public void printJobExecutionStatistics();
/*
* Job and Task statistics Key data types
*/
public static enum KeyDataType {
STRING, LONG, DOUBLE
}
/**
* Job Keys
*/
public static enum JobKeys {
JOBTRACKERID, JOBID, JOBNAME, JOBTYPE, USER, SUBMIT_TIME, CONF_PATH, LAUNCH_TIME, TOTAL_MAPS, TOTAL_REDUCES,
STATUS, FINISH_TIME, FINISHED_MAPS, FINISHED_REDUCES, FAILED_MAPS, FAILED_REDUCES,
LAUNCHED_MAPS, LAUNCHED_REDUCES, RACKLOCAL_MAPS, DATALOCAL_MAPS, HDFS_BYTES_READ,
HDFS_BYTES_WRITTEN, FILE_BYTES_READ, FILE_BYTES_WRITTEN, COMBINE_OUTPUT_RECORDS,
COMBINE_INPUT_RECORDS, REDUCE_INPUT_GROUPS, REDUCE_INPUT_RECORDS, REDUCE_OUTPUT_RECORDS,
MAP_INPUT_RECORDS, MAP_OUTPUT_RECORDS, MAP_INPUT_BYTES, MAP_OUTPUT_BYTES, MAP_HDFS_BYTES_WRITTEN,
JOBCONF, JOB_PRIORITY, SHUFFLE_BYTES, SPILLED_RECORDS
}
/**
* Map Task Keys
*/
public static enum MapTaskKeys {
TASK_ID, TASK_TYPE, START_TIME, STATUS, FINISH_TIME, HDFS_BYTES_READ, HDFS_BYTES_WRITTEN,
FILE_BYTES_READ, FILE_BYTES_WRITTEN, COMBINE_OUTPUT_RECORDS, COMBINE_INPUT_RECORDS,
OUTPUT_RECORDS, INPUT_RECORDS, INPUT_BYTES, OUTPUT_BYTES, NUM_ATTEMPTS, ATTEMPT_ID,
HOSTNAME, SPLITS, SPILLED_RECORDS, TRACKER_NAME, STATE_STRING, HTTP_PORT, ERROR, EXECUTION_TIME
}
/**
* Reduce Task Keys
*/
public static enum ReduceTaskKeys {
TASK_ID, TASK_TYPE, START_TIME, STATUS, FINISH_TIME, HDFS_BYTES_READ, HDFS_BYTES_WRITTEN,
FILE_BYTES_READ, FILE_BYTES_WRITTEN, COMBINE_OUTPUT_RECORDS, COMBINE_INPUT_RECORDS,
OUTPUT_RECORDS, INPUT_RECORDS, NUM_ATTEMPTS, ATTEMPT_ID, HOSTNAME, SHUFFLE_FINISH_TIME,
SORT_FINISH_TIME, INPUT_GROUPS, TRACKER_NAME, STATE_STRING, HTTP_PORT, SPLITS, SHUFFLE_BYTES,
SPILLED_RECORDS, EXECUTION_TIME
}
}