All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.hadoop.mapreduce.ClusterMetrics Maven / Gradle / Ivy

/**
 * 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.mapreduce;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.io.Writable;

/**
 * Status information on the current state of the Map-Reduce cluster.
 * 
 * 

ClusterMetrics provides clients with information such as: *

    *
  1. * Size of the cluster. *
  2. *
  3. * Number of blacklisted and decommissioned trackers. *
  4. *
  5. * Slot capacity of the cluster. *
  6. *
  7. * The number of currently occupied/reserved map & reduce slots. *
  8. *
  9. * The number of currently running map & reduce tasks. *
  10. *
  11. * The number of job submissions. *
  12. *

* *

Clients can query for the latest ClusterMetrics, via * {@link Cluster#getClusterStatus()}.

* * @see Cluster */ @InterfaceAudience.Public @InterfaceStability.Evolving public class ClusterMetrics implements Writable { private int runningMaps; private int runningReduces; private int occupiedMapSlots; private int occupiedReduceSlots; private int reservedMapSlots; private int reservedReduceSlots; private int totalMapSlots; private int totalReduceSlots; private int totalJobSubmissions; private int numTrackers; private int numBlacklistedTrackers; private int numDecommissionedTrackers; public ClusterMetrics() { } public ClusterMetrics(int runningMaps, int runningReduces, int occupiedMapSlots, int occupiedReduceSlots, int reservedMapSlots, int reservedReduceSlots, int mapSlots, int reduceSlots, int totalJobSubmissions, int numTrackers, int numBlacklistedTrackers, int numDecommissionedNodes) { this.runningMaps = runningMaps; this.runningReduces = runningReduces; this.occupiedMapSlots = occupiedMapSlots; this.occupiedReduceSlots = occupiedReduceSlots; this.reservedMapSlots = reservedMapSlots; this.reservedReduceSlots = reservedReduceSlots; this.totalMapSlots = mapSlots; this.totalReduceSlots = reduceSlots; this.totalJobSubmissions = totalJobSubmissions; this.numTrackers = numTrackers; this.numBlacklistedTrackers = numBlacklistedTrackers; this.numDecommissionedTrackers = numDecommissionedNodes; } /** * Get the number of running map tasks in the cluster. * * @return running maps */ public int getRunningMaps() { return runningMaps; } /** * Get the number of running reduce tasks in the cluster. * * @return running reduces */ public int getRunningReduces() { return runningReduces; } /** * Get number of occupied map slots in the cluster. * * @return occupied map slot count */ public int getOccupiedMapSlots() { return occupiedMapSlots; } /** * Get the number of occupied reduce slots in the cluster. * * @return occupied reduce slot count */ public int getOccupiedReduceSlots() { return occupiedReduceSlots; } /** * Get number of reserved map slots in the cluster. * * @return reserved map slot count */ public int getReservedMapSlots() { return reservedMapSlots; } /** * Get the number of reserved reduce slots in the cluster. * * @return reserved reduce slot count */ public int getReservedReduceSlots() { return reservedReduceSlots; } /** * Get the total number of map slots in the cluster. * * @return map slot capacity */ public int getMapSlotCapacity() { return totalMapSlots; } /** * Get the total number of reduce slots in the cluster. * * @return reduce slot capacity */ public int getReduceSlotCapacity() { return totalReduceSlots; } /** * Get the total number of job submissions in the cluster. * * @return total number of job submissions */ public int getTotalJobSubmissions() { return totalJobSubmissions; } /** * Get the number of active trackers in the cluster. * * @return active tracker count. */ public int getTaskTrackerCount() { return numTrackers; } /** * Get the number of blacklisted trackers in the cluster. * * @return blacklisted tracker count */ public int getBlackListedTaskTrackerCount() { return numBlacklistedTrackers; } /** * Get the number of decommissioned trackers in the cluster. * * @return decommissioned tracker count */ public int getDecommissionedTaskTrackerCount() { return numDecommissionedTrackers; } @Override public void readFields(DataInput in) throws IOException { runningMaps = in.readInt(); runningReduces = in.readInt(); occupiedMapSlots = in.readInt(); occupiedReduceSlots = in.readInt(); reservedMapSlots = in.readInt(); reservedReduceSlots = in.readInt(); totalMapSlots = in.readInt(); totalReduceSlots = in.readInt(); totalJobSubmissions = in.readInt(); numTrackers = in.readInt(); numBlacklistedTrackers = in.readInt(); numDecommissionedTrackers = in.readInt(); } @Override public void write(DataOutput out) throws IOException { out.writeInt(runningMaps); out.writeInt(runningReduces); out.writeInt(occupiedMapSlots); out.writeInt(occupiedReduceSlots); out.writeInt(reservedMapSlots); out.writeInt(reservedReduceSlots); out.writeInt(totalMapSlots); out.writeInt(totalReduceSlots); out.writeInt(totalJobSubmissions); out.writeInt(numTrackers); out.writeInt(numBlacklistedTrackers); out.writeInt(numDecommissionedTrackers); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy