выходы из системы при запуске Hadoop под Ubuntu 16.04

У меня возникли проблемы с запуском заданий Hadoop как в псевдокластере, так и в режиме кластера в Ubuntu 16.04.

Во время установки vanila hadoop/hdfs мой пользователь hadoop выходит из системы, и все процессы, запущенные этим пользователем, закрываются. Я не вижу в журналах (/var/log/systemd, journalctl или dmesg) ничего, что объясняло бы, почему пользователь выходит из системы.

Похоже, я не единственный, у кого есть проблемы с этой или подобной проблемой:

https://stackoverflow.com/questions/38288162/in-ubuntu-16-04-running-hadoop-jar-laptop-gets-rebooted

Примечание: создание специального пользователя Hadoop на самом деле не решило проблему в моем случае, но ограничило выход из системы для выделенного пользователя.

https://askubuntu.com/questions/784591/ubuntu-16-04-kills-session-when-resource-usage-is-extremely-high

Возможно ли, что какая-то проблема с классом UserGroupInformation (которая при некоторых обстоятельствах может вызвать выход из системы), возможно, с некоторыми изменениями в systemd в Ubuntu 16.04, может вызвать такое поведение?

Последние строки журнала hadoop, которые я получаю перед выходом из системы:

...
16/07/13 16:45:37 DEBUG ipc.ProtobufRpcEngine: Call: getJobReport took 4ms
16/07/13 16:45:37 DEBUG security.UserGroupInformation: PrivilegedAction
as:hduser (auth:SIMPLE)
from:org.apache.hadoop.mapreduce.Job.updateStatus(Job.java:320)
16/07/13 16:45:37 DEBUG ipc.Client: IPC Client (1360814716) connection to
laptop/127.0.1.1:37339 from hduser sending #375
16/07/13 16:45:37 DEBUG ipc.Client: IPC Client (1360814716) connection to
laptop/127.0.1.1:37339 from hduser got value #375
16/07/13 16:45:37 DEBUG ipc.ProtobufRpcEngine: Call: getJobReport took 2ms
Terminated
hduser@laptop:~$ 16/07/13 16:45:37 DEBUG ipc.Client: stopping client from
cache: org.apache.hadoop.ipc.Client@4e7ab839
exit

журналctl:

Jul 12 16:06:44 laptop systemd-logind[978]: Removed session 7.
Jul 12 16:06:44 laptop systemd-logind[978]: Removed session 6.
Jul 12 16:06:44 laptop systemd-logind[978]: Removed session 5.
Jul 12 16:06:44 laptop systemd-logind[978]: Removed session 8.

системный журнал:

Jul 12 16:06:43 laptop systemd[4172]: Stopped target Default.
Jul 12 16:06:43 laptop systemd[4172]: Reached target Shutdown.
Jul 12 16:06:44 laptop systemd[4172]: Starting Exit the Session...
Jul 12 16:06:44 laptop systemd[4172]: Stopped target Basic System.
Jul 12 16:06:44 laptop systemd[4172]: Stopped target Sockets.
Jul 12 16:06:44 laptop systemd[4172]: Stopped target Paths.
Jul 12 16:06:44 laptop systemd[4172]: Stopped target Timers.
Jul 12 16:06:44 laptop systemd[4172]: Received SIGRTMIN+24 from PID
10101 (kill).
Jul 12 16:06:44 laptop systemd[1]: Stopped User Manager for UID 1001.
Jul 12 16:06:44 laptop systemd[1]: Removed slice User Slice of hduser.

person Michael    schedule 17.07.2016    source источник


Ответы (3)


У меня тоже была проблема. Мне потребовалось время, но я нашел решение здесь: https://unix.stackexchange.com/questions/293069/all-services-of-a-user-are-killed-when-running-multiple-services-under-this-user

По сути, некоторые процессы Hadoop просто останавливаются, почему бы и нет. Но systemd, кажется, убивает все процессы пользователя, когда он видит, что процесс службы умирает.

Исправление состоит в том, чтобы добавить

[login]
KillUserProcesses=no

/etc/systemd/logind.confи перезагрузиться.

У меня было несколько версий Ubuntu для отладки проблемы, и исправление, кажется, работает только на Ubuntu 16.04.

person Truelle    schedule 18.08.2016
comment
Я обновил файл logind.conf. Это работало на моем ноутбуке, но не на виртуальной машине, которую я использую. - person Sandeep Deshmukh; 07.01.2017

Я была такая же проблема. Я использовал Apache APEX, который является родным для Hadoop. Когда я убивал любое приложение APEX, моя система выходила из системы.

Решение. Замените файл уничтожения (присутствующий в /bin/kill) Ubuntu 16 на файл уничтожения Ubuntu 14.

У меня все работает гладко, как и до обновления.

person Scorpio    schedule 18.10.2016

У меня была такая же проблема. Наконец, я обнаружил, что /bin/kill в ubuntu16.04 имеет ошибку в группа процессов уничтожения может решить эту проблему.

Если pid меньше -1, то sig отправляется каждому процессу в группе процессов с идентификатором -pid.

Из-за ошибки в procps-ng-3.3.10 уничтожение группы процессов, идентификатор которой начинается с 1, вызванной bin/yarn application -kill AppID, приведет к выходу пользователя из системы.

Проблема решается заменой /bin/kill на новый kill, скомпилированный из procps-ng-3.3.12.

tar xJf procps-ng-3.3.12.tar.xz
cd procps-ng-3.3.12
./configure
sudo cp .lib/kill /bin/kill
sudo chown root:root /bin/kill
sudo cp proc/.libs/libprocps.so.6.0.0 /lib/x86_64-linux/gnu/
sudo chown root:root /lib/x86_64-linux-gnu/libprocps.so.6.0.0
person runitao    schedule 26.09.2016