This project has retired. For details please refer to its Attic page.
HadoopCountersBase xref
View Javadoc

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  
19  package org.apache.giraph.counters;
20  
21  import org.apache.hadoop.mapreduce.Mapper.Context;
22  
23  /**
24   * Base class for groups of Hadoop Counters.
25   */
26  public abstract class HadoopCountersBase
27      implements Iterable<GiraphHadoopCounter> {
28    /** Hadoop Context used to create Counters */
29    private final Context context;
30    /** group to put counters under */
31    private final String groupName;
32  
33    /**
34     * Initialize with Hadoop Context and group name.
35     *
36     * @param context Hadoop Context to use.
37     * @param groupName String group name to use.
38     */
39    protected HadoopCountersBase(Context context, String groupName) {
40      this.context = context;
41      this.groupName = groupName;
42    }
43  
44    /**
45     * Get Hadoop Context
46     *
47     * @return Context object used by Hadoop
48     */
49    public Context getContext() {
50      return context;
51    }
52  
53    /**
54     * Get or create counter with given name and class's group name.
55     *
56     * @param name String name of counter
57     * @return GiraphHadoopCounter found or created
58     */
59    protected GiraphHadoopCounter getCounter(String name) {
60      return new GiraphHadoopCounter(context.getCounter(groupName, name));
61    }
62  }