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 值將指定無任何限制。

如圖:
**這裏寫圖片描述**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章