[1065]impala查询内存限制Memory limit exceeded

错误信息:

ERROR: 
Memory limit exceeded
Query did not have enough memory to get the minimum required buffers in the block manager.

原因:

当impala查询的时候,涉及到了group by having或者很多join的时候,会出现以上的错误。

解决方法就是把内存限制取消,或者加大
set mem_limit=-1 #取消
或者 1gb 100mb 1000b等值

如果以上还不行,就要去配置文件修改
Impala Daemon 内存限制
mem_limit=-1b

单池内存限制
default_pool_mem_limit=-1b

说明 :
default_pool_mem_limit
配置使用单个池时用于 Admission Control 的运行查询的最大内存。-1 或 0 表示无限制。已启用“用于 Admission Control 的动态资源池”时忽略。

mem_limit
由守护程序本身强制执行的 Impala Daemon 的内存限制(以字节为单位)。如果达到该限制,Impalad Daemon 上运行的查询可能会被停止。将其留空可以让 Impala 选择自己的限制。使用 -1 B 值将指定无任何限制。

如图:

参考:https://blog.csdn.net/duyuanhai/article/details/121014721
https://blog.csdn.net/oosongoo/article/details/78435779
https://blog.csdn.net/m0_43393325/article/details/117322660

Guess you like

Origin blog.csdn.net/xc_zhou/article/details/121234801