HDFS-14825. [Dynamometer] Workload doesn't start unless an absolute path of Mapper class given. (#1693)

This commit is contained in:
Takanobu Asanuma 2019-12-04 11:28:50 +09:00 committed by Akira Ajisaka
parent f1ab7f18c4
commit 54e760511a
1 changed files with 20 additions and 9 deletions

View File

@ -168,16 +168,27 @@ public class WorkloadDriver extends Configured implements Tool {
// recognize this
@SuppressWarnings("unchecked")
private Class<? extends WorkloadMapper<?, ?, ?, ?>> getMapperClass(
String className) throws ClassNotFoundException {
if (!className.contains(".")) {
className = WorkloadDriver.class.getPackage().getName() + "." + className;
String className) {
String[] potentialQualifiedClassNames = {
WorkloadDriver.class.getPackage().getName() + "." + className,
AuditReplayMapper.class.getPackage().getName() + "." + className,
className
};
for (String qualifiedClassName : potentialQualifiedClassNames) {
Class<?> mapperClass;
try {
mapperClass = getConf().getClassByName(qualifiedClassName);
} catch (ClassNotFoundException cnfe) {
continue;
}
if (!WorkloadMapper.class.isAssignableFrom(mapperClass)) {
throw new IllegalArgumentException(className + " is not a subclass of "
+ WorkloadMapper.class.getCanonicalName());
}
return (Class<? extends WorkloadMapper<?, ?, ?, ?>>) mapperClass;
}
Class<?> mapperClass = getConf().getClassByName(className);
if (!WorkloadMapper.class.isAssignableFrom(mapperClass)) {
throw new IllegalArgumentException(className + " is not a subclass of "
+ WorkloadMapper.class.getCanonicalName());
}
return (Class<? extends WorkloadMapper<?, ?, ?, ?>>) mapperClass;
throw new IllegalArgumentException("Unable to find workload mapper class: "
+ className);
}
private String getMapperUsageInfo(String mapperClassName)