2016-11-16 52 views
0

我經常得到蜂巢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連接執行此。

我的默認執行引擎是tez。如果將配置單元執行引擎更改爲mr,它工作正常。

如果我在配置單元cli中執行相同的查詢,在tez上它工作正常。

正如在各種論壇所說,我試圖改變容器的大小,但它沒有幫助。

SET hive.tez.container.size=20000 
SET hive.tez.java.opts=-Xmx10240m -XX:NewRatio=8 

看起來上面的設置不會有效地增加容器的大小。

此外,它正在整個羣集。

我的問題是:

  1. 有沒有我們可以限制催生蜂巢查詢集裝箱數量的任何方式,所以因爲大的查詢羣集犯規停止?
  2. 我們如何增加容器的大小?
  3. 除了增加容器大小之外,還有什麼其他的出路嗎?

    hive version: 1.2.1

    hdp: 2.3.2

回答

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. 

您可以禁用紗線配置文件夾中yarn-site中的pmem和vmem檢查。

感謝

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;