///**
// * 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.mapred;
//
//import org.apache.hadoop.metrics.MetricsContext;
//import org.apache.hadoop.metrics.MetricsRecord;
//import org.apache.hadoop.metrics.MetricsUtil;
//import org.apache.hadoop.metrics.Updater;
//import org.apache.hadoop.metrics.jvm.JvmMetrics;
//
//@SuppressWarnings("deprecation")
//class LocalJobRunnerMetricsTez implements Updater {
// private final MetricsRecord metricsRecord;
//
// private int numMapTasksLaunched = 0;
// private int numMapTasksCompleted = 0;
// private int numReduceTasksLaunched = 0;
// private int numReduceTasksCompleted = 0;
// private int numWaitingMaps = 0;
// private int numWaitingReduces = 0;
//
// public LocalJobRunnerMetricsTez(JobConf conf) {
// String sessionId = conf.getSessionId();
// // Initiate JVM Metrics
// JvmMetrics.init("JobTracker", sessionId);
// // Create a record for map-reduce metrics
// MetricsContext context = MetricsUtil.getContext("mapred");
// // record name is jobtracker for compatibility
// metricsRecord = MetricsUtil.createRecord(context, "jobtracker");
// metricsRecord.setTag("sessionId", sessionId);
// context.registerUpdater(this);
// }
//
// /**
// * Since this object is a registered updater, this method will be called
// * periodically, e.g. every 5 seconds.
// */
// public void doUpdates(MetricsContext unused) {
// synchronized (this) {
// metricsRecord.incrMetric("maps_launched", numMapTasksLaunched);
// metricsRecord.incrMetric("maps_completed", numMapTasksCompleted);
// metricsRecord.incrMetric("reduces_launched", numReduceTasksLaunched);
// metricsRecord.incrMetric("reduces_completed", numReduceTasksCompleted);
// metricsRecord.incrMetric("waiting_maps", numWaitingMaps);
// metricsRecord.incrMetric("waiting_reduces", numWaitingReduces);
//
// numMapTasksLaunched = 0;
// numMapTasksCompleted = 0;
// numReduceTasksLaunched = 0;
// numReduceTasksCompleted = 0;
// numWaitingMaps = 0;
// numWaitingReduces = 0;
// }
// metricsRecord.update();
// }
//
// public synchronized void launchMap(TaskAttemptID taskAttemptID) {
// ++numMapTasksLaunched;
// decWaitingMaps(taskAttemptID.getJobID(), 1);
// }
//
// public synchronized void completeMap(TaskAttemptID taskAttemptID) {
// ++numMapTasksCompleted;
// }
//
// public synchronized void launchReduce(TaskAttemptID taskAttemptID) {
// ++numReduceTasksLaunched;
// decWaitingReduces(taskAttemptID.getJobID(), 1);
// }
//
// public synchronized void completeReduce(TaskAttemptID taskAttemptID) {
// ++numReduceTasksCompleted;
// }
//
// private synchronized void decWaitingMaps(JobID id, int task) {
// numWaitingMaps -= task;
// }
//
// private synchronized void decWaitingReduces(JobID id, int task){
// numWaitingReduces -= task;
// }
//
//}