Hive使用Tez引擎出现OOM的解决方法
环境是Hive以Tez作为引擎,然后使用客户端(比如DataGrip)连接Hive运行SQL查询,运行过程中报错信息如下:
java.lang.OutOfMemoryError: Java heap space…
连接工具以DataGrip为例,解决办法如下:
-- 先执行该配置修改,原值为4096,可根据自身情况调整
set hive.tez.container.size=8192;-- 然后执行SQL逻辑
SELECT * FROM ods.tmp;
hive.tez.java.opts=-Xmx1700m:Java内存设置,不建议直接修改,而是通过调整tez.container.max.java.heap.fraction参数(默认0.8)来调整,该参数建议值为:tez.container.max.java.heap.fraction*hive.tez.container.size。
实践中通过调整hive.tez.container.size参数解决了OOM问题。