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);
}
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);
}
}
Aggregations