Dayue Gao created KYLIN-1768:
--------------------------------

             Summary: NDCuboidMapper throws ArrayIndexOutOfBoundsException when 
dimension is fixed length encoded to more than 256 bytes
                 Key: KYLIN-1768
                 URL: https://issues.apache.org/jira/browse/KYLIN-1768
             Project: Kylin
          Issue Type: Bug
          Components: Job Engine
    Affects Versions: v1.5.2
            Reporter: Dayue Gao
            Assignee: Dayue Gao


When user defined a dimension which is fixed length encoded to more than 256 
bytes, "Build N-Dimension Cuboid Data" step failed in map phase. The stack 
trace is shown below:

{noformat}
Error: java.lang.ArrayIndexOutOfBoundsException at 
java.lang.System.arraycopy(Native Method) at 
org.apache.kylin.cube.common.RowKeySplitter.split(RowKeySplitter.java:103) at 
org.apache.kylin.engine.mr.steps.NDCuboidMapper.map(NDCuboidMapper.java:125) at 
org.apache.kylin.engine.mr.steps.NDCuboidMapper.map(NDCuboidMapper.java:49) at 
org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) at 
org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) at 
org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) at 
java.security.AccessController.doPrivileged(Native Method) at 
javax.security.auth.Subject.doAs(Subject.java:415) at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
 at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
{noformat}

The reason is that `RowKeySplitter` is hardcoded to 65 splits and 256 bytes per 
split, and trying to put a larger encoded dimension throws 
ArrayIndexOutOfBoundsException.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to