我经常在蜂巢中收到错误消息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。如果将 hive 执行引擎更改为 mr 它工作正常。
如果我在 hive cli 中执行相同的查询,在 tez 上它可以正常工作。
正如在各种论坛中所说,我尝试更改容器大小,但没有帮助。
SET hive.tez.container.size=20000
SET hive.tez.java.opts=-Xmx10240m -XX:NewRatio=8
似乎上述设置并没有有效地增加容器大小。
它也占用了整个集群。
我的问题是:
- 有什么方法可以限制为 hive 查询生成的容器数量,以便集群不会因为大查询而停止?
- 我们怎样才能增加容器的大小?
除了增加容器大小之外,还有什么办法吗?
hive version: 1.2.1
hdp: 2.3.2