解决kylin报错:java.lang.ArrayIndexOutOfBoundsException: -1
2017-07-04 22:18
811 查看
报错信息:
解决:
meta中/table/下存在同名但大小写不同的两个table的meta, 这个meta文件里column的id起始为0,正常情况应该为1. kylin内部把表的meta存到一个hashmap里,key为大写的表名,不论原来是否为大写。在这个情况中小写的meta的内容把大写的meta内容覆盖了,查ID的时候有一个操作是把id值 - 1。如果原始的ID为0,-1之后就变成-1,然后就抛出上面的异常。
org.apache.kylin.dict.lookup.SnapshotTable:
org.apache.kylin.metadata.model.ColumnDesc:
问题meta:
ps: 类org.apache.kylin.metadata.model.ColumnDesc对应table中的一个column:
v.s.
2017-06-26 14:17:30,167 INFO [pool-9-thread-3] cli.DictionaryGeneratorCLI:57 : Building snapshot of ENERGON_DM.DM_DIAGNOSIS_FACT_SGYY_ROOT_SET_FLAG 2017-06-26 14:17:31,484 ERROR [pool-9-thread-3] common.HadoopShellExecutable:65 : error execute HadoopShellExecutable{id=8188ef71-3bc6-4b9a-b87d-5559e3ea6b4a-03, name=Bu ild Dimension Dictionary, state=RUNNING} java.lang.ArrayIndexOutOfBoundsException: -1 at org.apache.kylin.dict.lookup.SnapshotTable.takeSnapshot(SnapshotTable.java:89) at org.apache.kylin.dict.lookup.SnapshotManager.buildSnapshot(SnapshotManager.java:132) at org.apache.kylin.cube.CubeManager.buildSnapshotTable(CubeManager.java:270) at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:58) at org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:41) at org.apache.kylin.engine.mr.steps.CreateDictionaryJob.run(CreateDictionaryJob.java:54) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) at org.apache.kylin.engine.mr.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:63) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:113) at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:57) at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:113) at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:136) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
解决:
meta中/table/下存在同名但大小写不同的两个table的meta, 这个meta文件里column的id起始为0,正常情况应该为1. kylin内部把表的meta存到一个hashmap里,key为大写的表名,不论原来是否为大写。在这个情况中小写的meta的内容把大写的meta内容覆盖了,查ID的时候有一个操作是把id值 - 1。如果原始的ID为0,-1之后就变成-1,然后就抛出上面的异常。
org.apache.kylin.dict.lookup.SnapshotTable:
org.apache.kylin.metadata.model.ColumnDesc:
问题meta:
ps: 类org.apache.kylin.metadata.model.ColumnDesc对应table中的一个column:
v.s.
相关文章推荐
- [经验小结]jxl写excel时产生“java.lang.ArrayIndexOutOfBoundsException: 5”问题的解决办法
- Tomcat 或JBOSS java.lang.ArrayIndexOutOfBoundsException: 8192原因及其解决方法
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at SimpleCalculator.main的解决方法
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
- 解决java.lang.IllegalArgumentException: pointerIndex out of range 或者 arrayindexoutofboundsexception的错误
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at SimpleCalculator.main的解决方法
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
- 解决jxl导出excel异常:java.lang.ArrayIndexOutOfBoundsException
- 解决:java.lang.ArrayIndexOutOfBoundsException: 160 at com.alibaba.fastjson.serializer.SerializeWriter.writeStringWithDoubleQuote(SerializeWriter.java:868)
- Android-71-解决报错: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
- 解决java.lang.IllegalArgumentException: pointerIndex out of range 或者 arrayindexoutofboundsexception的错误
- 解决java.lang.ArrayIndexOutOfBoundsException问题(android:singleLine="true")
- 如何解决在快速向jtable添加数据的时候报AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:异常
- java.lang.ArrayIndexOutOfBoundsException 异常分析及解决
- 解决Redisson出现Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'create' threw exception; nested exception is java.lang.ArrayIndexOutOfBoundsException: 0的问题
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
- Nutch 遇见hits.getHits()出现java.lang.ArrayIndexOutOfBoundsException解决办法
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决