Использование виртуальной памяти пряжи

Я запускаю рабочий процесс oozie, состоящий из действия оболочки, запускающего этот сценарий.

java -classpath my.jar my.package.Main

Конфигурация действия оболочки выглядит так

<action name="run-test-script">
  <shell xmlns="uri:oozie:shell-action:0.1">
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>${nameNode}</name-node>
    <exec>run.sh</exec>
    <file>${wf:conf("oozie.wf.application.path")}/run.sh</file>
  </shell>
  <ok to="end"/>
  <error to="report_failure"/>
</action>

В Yarn (Cloudera Mgr GUI) у меня есть следующий набор

mapreduce.map.memory.mb=4GiB

Когда я запускаю это, он терпит неудачу, и в Yarn я получаю следующее сообщение об ошибке:

Контейнер [pid = 8340, containerID = container_1397556756420_5519_01_000002] работает за пределами ограничений виртуальной памяти. Текущее использование: используется 327,6 МБ из 4 ГБ физической памяти; Использовано 33,2 ГБ из 8,4 ГБ виртуальной памяти. Контейнер для убийства. Дамп дерева процессов для контейнера_1397556756420_5519_01_000002: | - PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME (MILLIS) SYSTEM_TIME (MILLIS) VMEM_USAGE (BYTES) RSSMEM_USAGE (PAGES) FULL_40 83602ass_LINE (СТРАНИЦЫ) FULL_CMD_CM_CM_SUAGE_USAGE (PAGES) -jar.jar my.package.Main | - 8466 8340 8340 8340 (run.sh) 0 0 108654592 304 / bin / bash ./run.sh | - 8340 31401 8340 8340 (java) 396 21 1476808704 67682 / usr / lib / jvm / default-java / bin / java -Djava.net.preferIPv4Stack = true -Dhadoop.metrics.log.level = WARN -Xmx825955249 -Djava.io.tmpdir = / data24 / yarn / nm / usercache / thomas.larsson / appcache / application_1397556756420_5519 / container_1397556756420_5519_01_000002 / tmp -Dlog4j.configuration = container-log4j.properties -Dyarn.app.mapreduce.container.log.dir = / var / log / hadoop-yarn / container / application_209719552000 / container_2097195567 .container.log.filesize = 0 -Dhadoop.root.logger = ИНФОРМАЦИЯ, CLA org.apache.hadoop.mapred.YarnChild 10.4.4.108 52668 попытка_1 397556756420_5519_m_000000_0 2 Контейнер убит по запросу. Код выхода 143

У меня вопрос: почему эта задача пытается выделить 33,2 ГБ виртуальной памяти?

Обновление: извините, я забыл опубликовать класс java ...

public class Main {
  public static void main(String[] args) throws InterruptedException {
    System.out.println("Running Main.");
    Thread.sleep(1000*60);
    System.out.println("Completed.");
  }
}

person Thomas Larsson    schedule 16.06.2014    source источник
comment
У меня та же проблема. Вы еще не догадались?   -  person Hoang-Mai Dinh    schedule 13.01.2015


Ответы (2)


размер карты mb, на которую вы смотрите, не имеет значения, поскольку вы не запускаете карту / уменьшение, проверьте все настройки YARN, связанные с памятью, возможно, ваше минимальное выделение для контейнеров слишком велико

person Arnon Rotem-Gal-Oz    schedule 20.06.2014
comment
Хм, у меня есть yarn.scheduler.minimum-allocation-mb = 1024 и yarn.nodemanager.vmem-pmem-ratio = 2.1, так что я не понимаю, откуда это источник. - person Thomas Larsson; 22.06.2014

Это не удается, потому что вы, должно быть, включили проверку vmem. И это превышает предел виртуальной памяти.

Текущее использование: используется 327,6 МБ из 4 ГБ физической памяти; 33,2 ГБ из 8,4 ГБ

person monty    schedule 06.06.2018