我正在尝试在超过 500k 数据限制的情况下运行 groupBy 查询。我收到此错误。
{
"error": "Resource limit exceeded",
"errorMessage": "Not enough dictionary space to execute this query. Try increasing druid.query.groupBy.maxMergingDictionarySize or enable disk spilling by setting druid.query.groupBy.maxOnDiskStorage to a positive number.",
"errorClass": "io.druid.query.ResourceLimitExceededException",
"host": "ubuntu:8083"
}
如何在 500k 数据限制以上使用 groupBy 查询?我正在使用德鲁伊 0.11.0 版本和 groupBy v2 引擎。我有 100 万行数据,我正在对其运行查询。
我尝试增加 druid.query.groupBy.maxMergingDictionarySize
和 druid.query.groupBy.maxOnDiskStorage
但这并没有解决我的问题。
编辑
当我尝试增加 druid.processing.buffer.sizeBytes
时,此错误发生在 linux 终端中。
5 errors
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1028) ~[guice-4.1.0.jar:?]
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1050) ~[guice-4.1.0.jar:?]
at io.druid.guice.LifecycleModule$2.start(LifecycleModule.java:154) ~[druid-api-0.11.0.jar:0.11.0]
at io.druid.cli.GuiceRunnable.initLifecycle(GuiceRunnable.java:101) [druid-services-0.11.0.jar:0.11.0]
at io.druid.cli.ServerRunnable.run(ServerRunnable.java:50) [druid-services-0.11.0.jar:0.11.0]
at io.druid.cli.Main.main(Main.java:108) [druid-services-0.11.0.jar:0.11.0]
最佳答案
为此,您需要增加所有历史和实时节点以及代理节点上的缓冲区大小。
druid.processing.buffer.sizeBytes
同时增加 druid.query.groupBy.maxMergingDictionarySize
和 druid.query.groupBy.maxOnDiskStorage
并仔细检查您的机器是否没有磁盘空间不足。
关于druid - 德鲁伊组查询超出资源限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51257528/