我正在尝试在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]
答案 0 :(得分:0)
为此,您需要增加所有历史和实时节点以及代理节点上的缓冲区大小。
druid.processing.buffer.sizeBytes
还要增加druid.query.groupBy.maxMergingDictionarySize
和druid.query.groupBy.maxOnDiskStorage
并再次检查您的计算机是否未用完磁盘。