Hi Tongxin,

This is a bug introduced by KYLIN-1982. Would you please open a JIRA and
contribute a patch if possible? Thanks.

2016-10-17 15:27 GMT+08:00 仇同心 <qiutong...@jd.com>:

> 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!
>



-- 
Best regards,

Shaofeng Shi 史少锋

Reply via email to