Hi,
Throw an exception information when using org.apache.kylin.storage.hbase.util
.CubeMigrationCLI migration cube, kylin version is kylin-1.5.4.1-HBase1.x.
2016-10-17 14:57:25,595 INFO [main CubeMigrationCLI:325]: Executing
operation: ADD_INTO_PROJECT:CUBE[name=testc], testc, test,
2016-10-17 14:57:25,595 ERROR [main CubeMigrationCLI:307]: error met
java.lang.ClassCastException: org.apache.kylin.cube.CubeInstance cannot be
cast to java.lang.String
at
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.doOpt(CubeMigrationCLI.java:425)
at
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.doOpts(CubeMigrationCLI.java:304)
at
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.moveCube(CubeMigrationCLI.java:153)
at
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.moveCube(CubeMigrationCLI.java:167)
at
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.main(CubeMigrationCLI.java:102)
2016-10-17 14:57:25,597 INFO [main CubeMigrationCLI:308]: Try undoing previous
changes
In github , the source code of kylin - 1.5.4.1 - HBase1. X branch:
case ADD_INTO_PROJECT: {
String cubeName = (String) opt.params[0];
String projectName = (String) opt.params[1];
String projectResPath =
ProjectInstance.concatResourcePath(projectName);
Serializer<ProjectInstance> projectSerializer = new
JsonSerializer<ProjectInstance>(ProjectInstance.class);
ProjectInstance project = dstStore.getResource(projectResPath,
ProjectInstance.class, projectSerializer);
project.removeRealization(RealizationType.CUBE, cubeName);
project.addRealizationEntry(RealizationType.CUBE, cubeName);
dstStore.putResource(projectResPath, project,
projectSerializer);
logger.info("Project instance for " + projectName + " is
corrected");
break;
}
This version of kylin 1.5.4.1 -- cdh5.7 is the same.
the source code of master X branch:
case ADD_INTO_PROJECT: {
CubeInstance srcCube = (CubeInstance) opt.params[0];
String cubeName = (String) opt.params[1];
String projectName = (String) opt.params[2];
String modelName = srcCube.getDescriptor().getModelName();
String projectResPath =
ProjectInstance.concatResourcePath(projectName);
Serializer<ProjectInstance> projectSerializer = new
JsonSerializer<ProjectInstance>(ProjectInstance.class);
ProjectInstance project = dstStore.getResource(projectResPath,
ProjectInstance.class, projectSerializer);
project.addModel(modelName);
project.removeRealization(RealizationType.CUBE, cubeName);
project.addRealizationEntry(RealizationType.CUBE, cubeName);
dstStore.putResource(projectResPath, project, projectSerializer);
logger.info("Project instance for " + projectName + " is
corrected");
break;.
}
I compare the two source code: kylin - 1.5.4.1 - HBase1. X branch 、kylin
1.5.4.1 -- cdh5.7 and master, I think in kylin - 1.5.4.1 - HBase1 .x 、kylin
1.5.4.1 -- cdh5.7 branch , the code of CubeMigrationCLI is wrong?
Thank you!