Hive Container超出了物理限制

时间:2016-11-16 14:20:11

标签: hadoop hive tez

我经常在配置单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

看来上面的设置并没有有效地增加容器的大小。

它也在占据整个集群。

我的问题是:

  1. 是否有任何方法可以限制为hive查询生成的容器数量,以便群集因为大查询而不会停止?
  2. 我们如何增加容器的大小?
  3. 除了增加容器尺寸外,还有其他出路吗?

    hive version: 1.2.1

    hdp: 2.3.2

2 个答案:

答案 0 :(得分:1)

它是由YARN限制容器内任务内存使用造成的。

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.

您可以在纱线配置文件夹中禁用纱线现场的pmem和vmem检查。

由于

答案 1 :(得分:0)

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;