Search in sources :

Example 1 with PigStatusReporter

use of org.apache.pig.tools.pigstats.PigStatusReporter in project elephant-bird by twitter.

the class PigCounterHelper method incrCounter.

/**
 * Mocks the Reporter.incrCounter, but adds buffering.
 * See org.apache.hadoop.mapred.Reporter's incrCounter.
 */
public void incrCounter(String group, String counterName, long incr) {
    PigStatusReporter reporter = PigStatusReporter.getInstance();
    if (reporter != null) {
        // common case
        Counter counter = reporter.getCounter(group, counterName);
        if (counter != null) {
            HadoopCompat.incrementCounter(counter, incr);
            if (counterStringMap_.size() > 0) {
                for (Map.Entry<Pair<String, String>, Long> entry : counterStringMap_.entrySet()) {
                    HadoopCompat.incrementCounter(reporter.getCounter(entry.getKey().first, entry.getKey().second), entry.getValue());
                }
                counterStringMap_.clear();
            }
            return;
        }
    }
    // In the case when reporter is not available, or we can't get the Counter,
    // store in the local map.
    Pair<String, String> key = new Pair<String, String>(group, counterName);
    Long currentValue = counterStringMap_.get(key);
    counterStringMap_.put(key, (currentValue == null ? 0 : currentValue) + incr);
}
Also used : Counter(org.apache.hadoop.mapreduce.Counter) PigStatusReporter(org.apache.pig.tools.pigstats.PigStatusReporter) Map(java.util.Map) Pair(org.apache.pig.impl.util.Pair)

Example 2 with PigStatusReporter

use of org.apache.pig.tools.pigstats.PigStatusReporter in project elephant-bird by twitter.

the class PigCounterHelper method incrCounter.

/**
 * Mocks the Reporter.incrCounter, but adds buffering.
 * See org.apache.hadoop.mapred.Reporter's incrCounter.
 */
public void incrCounter(Enum<?> key, long incr) {
    PigStatusReporter reporter = PigStatusReporter.getInstance();
    if (reporter != null && reporter.getCounter(key) != null) {
        HadoopCompat.incrementCounter(reporter.getCounter(key), incr);
        if (counterEnumMap_.size() > 0) {
            for (Map.Entry<Enum<?>, Long> entry : counterEnumMap_.entrySet()) {
                HadoopCompat.incrementCounter(reporter.getCounter(entry.getKey()), entry.getValue());
            }
            counterEnumMap_.clear();
        }
    } else {
        // buffer the increments
        Long currentValue = counterEnumMap_.get(key);
        counterEnumMap_.put(key, (currentValue == null ? 0 : currentValue) + incr);
    }
}
Also used : PigStatusReporter(org.apache.pig.tools.pigstats.PigStatusReporter) Map(java.util.Map)

Aggregations

Map (java.util.Map)2 PigStatusReporter (org.apache.pig.tools.pigstats.PigStatusReporter)2 Counter (org.apache.hadoop.mapreduce.Counter)1 Pair (org.apache.pig.impl.util.Pair)1