Я недавно установил Ubuntu 16.04 на использовании виртуальной машины VMware. Для тестирования моего кода MapReduce я также установил hadoop 2.7.3, и установите единственный кластер узла.
Когда я выполняю алгоритм MapReduce, каждый процесс включая NameNode, DataNode, ResourceManager, NodeManager и ssh сессию, что я использование уничтожаюсь без любого предупреждения.
Для исследования я создал сценарий обертки, который регистрирует входные параметры процесса/bin/kill после того, как я переместил/bin/kill в/bin/temp/kill
date >> /home/user/log.txt
echo "$@" >> /home/user/log.txt
echo "$#" >> /home/user/log.txt
w >> /home/user/log.txt
/bin/temp/kill $@
После того, как Задание MapReduce запускается, каждый процесс уничтожается, и включение файла журнала следующие:
Sun Aug 28 03:39:19 KST 2016
-0 -18953
2
03:39:19 up 14 min, 1 user, load average: 4.74, 2.65, 1.78
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user tty1 03:36 3:27 0.06s 0.06s -bash
Sun Aug 28 03:39:19 KST 2016
-15 -18844
2
03:39:19 up 14 min, 1 user, load average: 4.74, 2.65, 1.78
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user tty1 03:36 3:27 0.06s 0.00s /usr/bin/clear_console -q
Как только "уничтожают-0 - 1xxxx", назван, мои обработанные уничтожаются из-за ошибки уничтожения, явился в https://bugs.launchpad.net/ubuntu / + source/alsa-driver / + ошибка/1610499
Я добавил топор PS>>, /home/user/log.txt и процесс с pid 18844 были
18844 ? Ss 0:00 /bin/bash -c /usr/lib/jvm/default-java/bin/java -Djava.io.tmpdir=/usr/local/hadoop-datastore/hadoop-2.7.3/nm-local-dir/usercache/user/appcache/application_1472323092836_0001/container_1472323092836_0001_01_000001/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/usr/local/hadoop-2.7.3/logs/userlogs/application_1472323092836_0001/container_1472323092836_0001_01_000001 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog -Xmx1024m org.apache.hadoop.mapreduce.v2.app.MRAppMaster 1>/usr/local/hadoop-2.7.3/logs/userlogs/application_1472323092836_0001/container_1472323092836_0001_01_000001/stdout 2>/usr/local/hadoop-2.7.3/logs/userlogs/application_1472323092836_0001/container_1472323092836_0001_01_000001/stderr
Я думаю, что некоторый hadoop демон, такой как NodeManager хотел уничтожить YarnChild, так как YarnChild использует больше памяти, чем это может использовать. Но это приводит к уничтожению всех процессов.
Q1. Что значение уничтожения является процессом, идентификатор процесса которого является отрицательным целым числом? Почему это не положительное число, как нормальный процесс имеет.
Q2. Если это - другая ошибка Hadoop, который вызывает, уничтожают с отрицательным pid, как я могу найти, какой процесс вызывает те, которые "уничтожают-15 - 18844"? Я хочу найти процесс и сообщить об ошибке hadoop сообществу.
Я перекомпилировал/bin/kill от procps-ng 3.3.12, и все хорошо работает.Спасибо.