MAPREDUCE-2784. [Gridmix] Bug fixes in ExecutionSummarizer and ResourceUsageMatcher. (amarrk)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1237579 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2ef107ff90
commit
4b946ebdf2
|
@ -176,6 +176,9 @@ Release 0.23.1 - Unreleased
|
|||
on the webapps. (Bhallamudi Venkata Siva Kamesh and Jason Lowe via vinodkv)
|
||||
|
||||
BUG FIXES
|
||||
MAPREDUCE-2784. [Gridmix] Bug fixes in ExecutionSummarizer and
|
||||
ResourceUsageMatcher. (amarrk)
|
||||
|
||||
MAPREDUCE-3194. "mapred mradmin" command is broken in mrv2
|
||||
(Jason Lowe via bobby)
|
||||
|
||||
|
|
|
@ -149,10 +149,15 @@ class ExecutionSummarizer implements StatListener<JobStats> {
|
|||
throws IOException {
|
||||
numJobsInInputTrace = factory.numJobsInTrace;
|
||||
endTime = System.currentTimeMillis();
|
||||
Path inputTracePath = new Path(inputPath);
|
||||
FileSystem fs = inputTracePath.getFileSystem(conf);
|
||||
inputTraceLocation = fs.makeQualified(inputTracePath).toString();
|
||||
inputTraceSignature = getTraceSignature(inputTraceLocation);
|
||||
if ("-".equals(inputPath)) {
|
||||
inputTraceLocation = Summarizer.NA;
|
||||
inputTraceSignature = Summarizer.NA;
|
||||
} else {
|
||||
Path inputTracePath = new Path(inputPath);
|
||||
FileSystem fs = inputTracePath.getFileSystem(conf);
|
||||
inputTraceLocation = fs.makeQualified(inputTracePath).toString();
|
||||
inputTraceSignature = getTraceSignature(inputPath);
|
||||
}
|
||||
jobSubmissionPolicy = Gridmix.getJobSubmissionPolicy(conf).name();
|
||||
resolver = userResolver.getClass().getName();
|
||||
if (dataSize > 0) {
|
||||
|
|
|
@ -314,9 +314,13 @@ public class Gridmix extends Configured implements Tool {
|
|||
}
|
||||
});
|
||||
|
||||
// print the run summary
|
||||
System.out.print("\n\n");
|
||||
System.out.println(summarizer.toString());
|
||||
// print the gridmix summary if the run was successful
|
||||
if (val == 0) {
|
||||
// print the run summary
|
||||
System.out.print("\n\n");
|
||||
System.out.println(summarizer.toString());
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,15 +52,23 @@ public class ResourceUsageMatcher {
|
|||
@SuppressWarnings("unchecked")
|
||||
public void configure(Configuration conf, ResourceCalculatorPlugin monitor,
|
||||
ResourceUsageMetrics metrics, Progressive progress) {
|
||||
Class[] plugins =
|
||||
conf.getClasses(RESOURCE_USAGE_EMULATION_PLUGINS,
|
||||
ResourceUsageEmulatorPlugin.class);
|
||||
Class[] plugins = conf.getClasses(RESOURCE_USAGE_EMULATION_PLUGINS);
|
||||
if (plugins == null) {
|
||||
System.out.println("No resource usage emulator plugins configured.");
|
||||
} else {
|
||||
for (Class<? extends ResourceUsageEmulatorPlugin> plugin : plugins) {
|
||||
if (plugin != null) {
|
||||
emulationPlugins.add(ReflectionUtils.newInstance(plugin, conf));
|
||||
for (Class clazz : plugins) {
|
||||
if (clazz != null) {
|
||||
if (ResourceUsageEmulatorPlugin.class.isAssignableFrom(clazz)) {
|
||||
ResourceUsageEmulatorPlugin plugin =
|
||||
(ResourceUsageEmulatorPlugin) ReflectionUtils.newInstance(clazz,
|
||||
conf);
|
||||
emulationPlugins.add(plugin);
|
||||
} else {
|
||||
throw new RuntimeException("Misconfigured resource usage plugins. "
|
||||
+ "Class " + clazz.getClass().getName() + " is not a resource "
|
||||
+ "usage plugin as it does not extend "
|
||||
+ ResourceUsageEmulatorPlugin.class.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,7 +159,7 @@ public class TestGridmixSummary {
|
|||
|
||||
@Override
|
||||
protected Thread createReaderThread() {
|
||||
return null;
|
||||
return new Thread();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -243,7 +243,7 @@ public class TestGridmixSummary {
|
|||
tid, es.getInputTraceSignature());
|
||||
// test trace location
|
||||
Path qPath = fs.makeQualified(testTraceFile);
|
||||
assertEquals("Mismatch in trace signature",
|
||||
assertEquals("Mismatch in trace filename",
|
||||
qPath.toString(), es.getInputTraceLocation());
|
||||
// test expected data size
|
||||
assertEquals("Mismatch in expected data size",
|
||||
|
@ -275,7 +275,7 @@ public class TestGridmixSummary {
|
|||
es.finalize(factory, testTraceFile.toString(), 0L, resolver, dataStats,
|
||||
conf);
|
||||
// test missing expected data size
|
||||
assertEquals("Mismatch in trace signature",
|
||||
assertEquals("Mismatch in trace data size",
|
||||
Summarizer.NA, es.getExpectedDataSize());
|
||||
assertFalse("Mismatch in trace signature",
|
||||
tid.equals(es.getInputTraceSignature()));
|
||||
|
@ -295,6 +295,12 @@ public class TestGridmixSummary {
|
|||
assertEquals("Mismatch in trace signature",
|
||||
tid, es.getInputTraceSignature());
|
||||
|
||||
// finalize trace identifier '-' input
|
||||
es.finalize(factory, "-", 0L, resolver, dataStats, conf);
|
||||
assertEquals("Mismatch in trace signature",
|
||||
Summarizer.NA, es.getInputTraceSignature());
|
||||
assertEquals("Mismatch in trace file location",
|
||||
Summarizer.NA, es.getInputTraceLocation());
|
||||
}
|
||||
|
||||
// test the ExecutionSummarizer
|
||||
|
|
Loading…
Reference in New Issue