2016-11-16 6 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 containerHive Контейнер работает за физических ограничений

я выполнить это в Скале с помощью JDBC соединения.

Мой двигатель исполнения по умолчанию - тез. Если двигатель выполнения слияния слияния с mr работает нормально.

Если я выполняю тот же запрос в hive 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.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 проверить на пряжу в своей папке конфигурации пряжи.

Благодаря

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; 
Смежные вопросы