hive容器运行超出物理限制

8tntrjer  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(674)

我经常在配置单元中收到错误消息 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

vojdkbi0

vojdkbi01#

hive> set mapreduce.map.memory.mb = 9000;
hive> set mapreduce.map.java.opts =- Xmx7200m;
hive> set mapreduce.reduce.memory.mb = 9000;
hive> set mapreduce.reduce.java.opts =- Xmx7200m;
cbwuti44

cbwuti442#

这是由容器中的任务内存使用限制引起的。

yarn.nodemanager.pmem-check-enabled  true   Whether physical memory limits will be enforced for containers.
yarn.nodemanager.vmem-check-enabled  true   Whether virtual memory limits will be enforced for containers.

您可以禁用Yarn配置文件夹中的pmem和vmem签入Yarn站点。
谢谢

相关问题