我经常在配置单元中收到错误消息 container running beyond physical memory limits. Current usage: 4.7 GB of 4GB physical memory used; 12.1 GB of 8.4 GB virtual memory used. Killing container
我使用jdbc连接在scala中执行这个。
我的默认执行引擎是tez。如果将配置单元执行引擎更改为mr,则工作正常。
如果我在hivecli中执行相同的查询,那么在tez上就可以了。
正如在各种论坛上所说,我试图改变容器的大小,但它没有帮助。
SET hive.tez.container.size=20000
SET hive.tez.java.opts=-Xmx10240m -XX:NewRatio=8
上面的设置似乎不能有效地增加容器的大小。
它也占据了整个集群。
我的问题是:
有没有什么方法可以限制为一个配置单元查询生成的容器的数量,这样集群就不会因为大查询而停止?
我们怎样才能增加集装箱的尺寸?
除了增加容器尺寸之外,还有别的出路吗?
hive version: 1.2.1 hdp: 2.3.2
2条答案
按热度按时间vojdkbi01#
cbwuti442#
这是由容器中的任务内存使用限制引起的。
您可以禁用Yarn配置文件夹中的pmem和vmem签入Yarn站点。
谢谢