2016-07-17 3 views
5

J'ai des problèmes avec l'exécution de tâches hadoop en pseudo-cluster et en mode cluster sous Ubuntu 16.04.se déconnecte pendant l'exécution de hadoop sous ubuntu 16.04

Lors de l'exécution d'une installation vanila hadoop/hdfs - mon utilisateur hadoop est déconnecté et tous les processus exécutés par cet utilisateur sont fermés. Je ne vois rien dans les journaux (/ var/log/systemd, journalctl ou dmesg) qui explique pourquoi l'utilisateur est déconnecté.

On dirait que je ne suis pas le seul qui a des problèmes avec ce ou problème similaire:

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

Remarque: la création de l'utilisateur Hadoop spécial n'a pas fait résolu le problème dans mon cas - mais limité les déconnexions à l'utilisateur dédié.

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

Est-il possible que certains problèmes autour de la classe UserGroupInformation (qui peut, dans certaines circonstances provoquer une fermeture de session), avec peut-être quelques changements dans systemd dans ubuntu 16.04 peut provoquer ce problème?

Les dernières lignes de journal Hadoop que je reçois avant la déconnection:

... 
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 
[email protected]:~$ 16/07/13 16:45:37 DEBUG ipc.Client: stopping client from 
cache: [email protected] 
exit 

journalctl:

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. 

syslog:

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. 

Répondre

5

J'ai eu aussi le problème. Il m'a fallu du temps, mais j'ai trouvé la solution ici: https://unix.stackexchange.com/questions/293069/all-services-of-a-user-are-killed-when-running-multiple-services-under-this-user

Fondamentalement, certains processus hadoop s'arrêtent simplement, car pourquoi pas. Mais systemd semble tuer tous les processus de l'utilisateur quand il voit le processus d'un service mourir.

Le correctif est d'ajouter

[login] 
KillUserProcesses=no 

à /etc/systemd/logind.conf et redémarrez.

J'ai eu plusieurs versions d'ubuntu pour déboguer le problème, et le correctif semble fonctionner uniquement sur Ubuntu 16.04.

+0

J'ai mis à jour le fichier logind.conf. Cela a fonctionné sur mon ordinateur portable mais pas sur la machine virtuelle que j'utilise. –

3

J'ai eu le même problème aussi. Enfin, j'ai trouvé /bin/kill in ubuntu16.04 has bug in killing process group peut résoudre ce problème.

Si pid est inférieur à -1, alors sig est envoyé à tous les processus dans le groupe de processus dont l'ID est -pid

En raison du bogue dans procps-ng -3.3.10, tuez le groupe de processus dont l'ID commence par 1, invoqué par bin/yarn application -kill AppID, provoquera les déconnexions de l'utilisateur.

Le problème est résolu après avoir remplacé /bin/kill par le nouveau kill compilé à partir de 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 
2

J'ai eu le même problème. J'utilisais Apache APEX qui est natif de hadoop. En supprimant toute application APEX, mon système me déconnectait.

Solution: Remplacez le fichier kill (présent dans/bin/kill) d'Ubuntu 16 avec le fichier kill d'Ubuntu 14.

Tout fonctionne bien comme avant mise à niveau pour moi.