You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by Lu Zhe <tc...@hotmail.com> on 2018/04/10 07:29:50 UTC

Dict value is too long

 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

原本怀疑是字段值过长,因为上次遇到的情况就是这样,后来我限制了字段值的长度就好了。
这次又遇到这个问题,不是很理解。

RE: Dict value is too long

Posted by ro...@stratebi.com.
Hi,

 

Looks like there is a dimension with high cardinality (HC) that does not fit
in dictionary. Please check if you have a HC dimension and try to change its
Rowkey Encoding from dictionary (dic) to other encoding, such as fixed
length. Have you tried this already?

 

Regards,

 

 

 

From: Lu Zhe [mailto:tcluzhe@hotmail.com] 
Sent: martes, 10 de abril de 2018 9:37
To: user@kylin.apache.org
Subject: 答复: Dict value is too long

 

抱歉,我修改下格式。

 

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(SnapshotTab
leSerializer.java:74)
 at
org.apache.kylin.dict.lookup.SnapshotTableSerializer.deserialize(SnapshotTab
leSerializer.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(SnapshotManag
er.java:178)
 at
org.apache.kylin.dict.lookup.SnapshotManager.trySaveNewSnapshot(SnapshotMana
ger.java:140)
 at
org.apache.kylin.dict.lookup.SnapshotManager.buildSnapshot(SnapshotManager.j
ava:120)
 at
org.apache.kylin.cube.CubeManager$DictionaryAssist.buildSnapshotTable(CubeMa
nager.java:1055)
 at
org.apache.kylin.cube.CubeManager.buildSnapshotTable(CubeManager.java:971)
 at
org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGe
neratorCLI.java:87)
 at
org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGe
neratorCLI.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(HadoopShellEx
ecutable.java:63)
 at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable
.java:162)
 at
org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChaine
dExecutable.java:67)
 at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable
.java:162)
 at
org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultS
cheduler.java:300)
 at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:11
42)
 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
17)
 at java.lang.Thread.run(Thread.java:745)

result code:2

 

原本怀疑是字段值过长,因为上次遇到的情况就是这样,后来我限制了字段值的长度就
好了。
这次又遇到这个问题,不是很理解。

 

  _____  

发件人: Lu Zhe < <ma...@hotmail.com> tcluzhe@hotmail.com>
发送时间: 2018年4月10日 15:29
收件人:  <ma...@kylin.apache.org> user@kylin.apache.org
主题: Dict value is too long 

 

 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(SnapshotManag
er.java:178)
                    at
org.apache.kylin.dict.lookup.SnapshotManager.trySaveNewSnapshot(SnapshotMana
ger.java:140)
                    at
org.apache.kylin.dict.lookup.SnapshotManager.buildSnapshot(SnapshotManager.j
ava:120)
                    at
org.apache.kylin.cube.CubeManager$DictionaryAssist.buildSnapshotTable(CubeMa
nager.java:1055)
                    at
org.apache.kylin.cube.CubeManager.buildSnapshotTable(CubeManager.java:971)
                    at
org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGe
neratorCLI.java:87)
                    at
org.apache.kylin.cube.cli.DictionaryGeneratorCLI.processSegment(DictionaryGe
neratorCLI.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(HadoopShellEx
ecutable.java:63)
                    at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable
.java:162)
                    at
org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChaine
dExecutable.java:67)
                    at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable
.java:162)
                    at
org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultS
cheduler.java:300)
                    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:11
42)
                    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
17)
                    at java.lang.Thread.run(Thread.java:745)
 
result code:2

 

原本怀疑是字段值过长,因为上次遇到的情况就是这样,后来我限制了字段值的长度就
好了。

这次又遇到这个问题,不是很理解。


答复: Dict value is too long

Posted by Lu Zhe <tc...@hotmail.com>.
抱歉,我修改下格式。

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

原本怀疑是字段值过长,因为上次遇到的情况就是这样,后来我限制了字段值的长度就好了。
这次又遇到这个问题,不是很理解。

________________________________
发件人: Lu Zhe <tc...@hotmail.com>
发送时间: 2018年4月10日 15:29
收件人: user@kylin.apache.org
主题: Dict value is too long

 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

原本怀疑是字段值过长,因为上次遇到的情况就是这样,后来我限制了字段值的长度就好了。
这次又遇到这个问题,不是很理解。