MAPREDUCE-3686. Fixed two bugs in Counters because of which web app displays zero counter values for framework counters. Contributed by Bhallamudi Venkata Siva Kamesh.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1293775 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f3cc891148
commit
f071323343
|
@ -175,6 +175,10 @@ Release 0.23.2 - UNRELEASED
|
||||||
MAPREDUCE-3910. Fixed a bug in CapacityScheduler LeafQueue which was causing
|
MAPREDUCE-3910. Fixed a bug in CapacityScheduler LeafQueue which was causing
|
||||||
app-submission to fail. (John George via vinodkv)
|
app-submission to fail. (John George via vinodkv)
|
||||||
|
|
||||||
|
MAPREDUCE-3686. Fixed two bugs in Counters because of which web app displays
|
||||||
|
zero counter values for framework counters. (Bhallamudi Venkata Siva Kamesh
|
||||||
|
via vinodkv)
|
||||||
|
|
||||||
Release 0.23.1 - 2012-02-17
|
Release 0.23.1 - 2012-02-17
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -326,12 +326,10 @@ public abstract class AbstractCounters<C extends Counter,
|
||||||
*/
|
*/
|
||||||
public synchronized void incrAllCounters(AbstractCounters<C, G> other) {
|
public synchronized void incrAllCounters(AbstractCounters<C, G> other) {
|
||||||
for(G right : other) {
|
for(G right : other) {
|
||||||
G left = groups.get(right.getName());
|
String groupName = right.getName();
|
||||||
|
G left = (isFrameworkGroup(groupName) ? fgroups : groups).get(groupName);
|
||||||
if (left == null) {
|
if (left == null) {
|
||||||
limits.checkGroups(groups.size() + 1);
|
left = addGroup(groupName, right.getDisplayName());
|
||||||
left = groupFactory.newGroup(right.getName(), right.getDisplayName(),
|
|
||||||
limits);
|
|
||||||
groups.put(right.getName(), left);
|
|
||||||
}
|
}
|
||||||
left.incrAllCounters(right);
|
left.incrAllCounters(right);
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,6 +107,8 @@ public abstract class CounterGroupFactory<C extends Counter,
|
||||||
if (gf != null) return gf.newGroup(name);
|
if (gf != null) return gf.newGroup(name);
|
||||||
if (name.equals(FS_GROUP_NAME)) {
|
if (name.equals(FS_GROUP_NAME)) {
|
||||||
return newFileSystemGroup();
|
return newFileSystemGroup();
|
||||||
|
} else if (s2i.get(name) != null) {
|
||||||
|
return newFrameworkGroup(s2i.get(name));
|
||||||
}
|
}
|
||||||
return newGenericGroup(name, displayName, limits);
|
return newGenericGroup(name, displayName, limits);
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,29 @@ public class TestCounters {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCountersIncrement() {
|
||||||
|
Counters fCounters = new Counters();
|
||||||
|
Counter fCounter = fCounters.findCounter(FRAMEWORK_COUNTER);
|
||||||
|
fCounter.setValue(100);
|
||||||
|
Counter gCounter = fCounters.findCounter("test", "foo");
|
||||||
|
gCounter.setValue(200);
|
||||||
|
|
||||||
|
Counters counters = new Counters();
|
||||||
|
counters.incrAllCounters(fCounters);
|
||||||
|
Counter counter;
|
||||||
|
for (CounterGroup cg : fCounters) {
|
||||||
|
CounterGroup group = counters.getGroup(cg.getName());
|
||||||
|
if (group.getName().equals("test")) {
|
||||||
|
counter = counters.findCounter("test", "foo");
|
||||||
|
assertEquals(200, counter.getValue());
|
||||||
|
} else {
|
||||||
|
counter = counters.findCounter(FRAMEWORK_COUNTER);
|
||||||
|
assertEquals(100, counter.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static final Enum<?> FRAMEWORK_COUNTER = TaskCounter.CPU_MILLISECONDS;
|
static final Enum<?> FRAMEWORK_COUNTER = TaskCounter.CPU_MILLISECONDS;
|
||||||
static final long FRAMEWORK_COUNTER_VALUE = 8;
|
static final long FRAMEWORK_COUNTER_VALUE = 8;
|
||||||
static final String FS_SCHEME = "HDFS";
|
static final String FS_SCHEME = "HDFS";
|
||||||
|
|
Loading…
Reference in New Issue