【问题标题】:Hive Container is running beyond physical limitsHive Container 运行超出物理限制
【发布时间】:2018-03-05 00:03:19
【问题描述】:

我经常在 hive 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

【问题讨论】:

    标签: hadoop hive tez


    【解决方案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 检查。

    谢谢

    【讨论】:

      【解决方案2】:
      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;
      

      【讨论】:

        猜你喜欢
        • 2017-08-20
        • 2018-11-01
        • 2018-03-30
        • 1970-01-01
        • 1970-01-01
        • 2022-12-15
        • 2012-12-16
        • 2016-03-19
        • 1970-01-01
        相关资源
        最近更新 更多