Kylin 2.3.1
Build Dimension Dictionary时报错:
java.lang.IllegalStateException: maxValueLength is negative (-26578). Dict
value is too long, whose length is larger than 32767
at org.apache.kylin.dict.TrieDictionary.init(TrieDictionary.java:104)
at
org.apache.kylin.dict.TrieDictionary.readFields(TrieDictionary.java:339)
at
org.apache.kylin.dict.lookup.SnapshotTable.readData(SnapshotTable.java:250)
at
org.apache.kylin.dict.lookup.SnapshotTableSerializer.deserialize(SnapshotTableSerializer.java:74)
at
org.apache.kylin.dict.lookup.SnapshotTableSerializer.deserialize(SnapshotTableSerializer.java:48)
at
org.apache.kylin.common.persistence.ResourceStore.getResource(ResourceStore.java:171)
at
org.apache.kylin.dict.lookup.SnapshotManager.load(SnapshotManager.java:196)
at
org.apache.kylin.dict.lookup.SnapshotManager.checkDupByContent(SnapshotManager.java:178)
at
org.apache.kylin.dict.lookup.SnapshotManager.trySaveNewSnapshot(SnapshotManager.java:140)
at
org.apache.kylin.dict.lookup.SnapshotManager.buildSnapshot(SnapshotManager.java:120)
at
org.apache.kylin.cube.CubeManager$DictionaryAssist.buildSnapshotTable(CubeManager.java:1055)
at
org.apache.kylin.cube.CubeManager.buildSnapshotTable(CubeManager.java:971)
at
org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:87)
at
org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGeneratorCLI.java:49)
at
org.apache.kylin.engine.mr.steps.CreateDictionaryJob.run(CreateDictionaryJob.java:71)
at org.apache.kylin.engine.mr.MRUtil.runMRJob(MRUtil.java:97)
at
org.apache.kylin.engine.mr.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:63)
at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
at
org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:67)
at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
at
org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:300)
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)
result code:2
原本怀疑是字段值过长,因为上次遇到的情况就是这样,后来我限制了字段值的长度就好了。
这次又遇到这个问题,不是很理解。