2016-07-17 10 views
5

Ich habe Probleme mit dem Ausführen von Hadoop-Jobs im Pseudo-Cluster und im Cluster-Modus unter Ubuntu 16.04.Logouts während des Laufens Hadoop unter Ubuntu 16.04

Beim Ausführen einer Vanila Hadoop/hdfs Installation - mein Hadoop-Benutzer wird ausgeloggt und alle Prozesse, die von diesem Benutzer ausgeführt werden, sind geschlossen. Ich sehe nichts in logs anzeigen (/ var/log/systemd, journalctl oder dmesg), das erklärt, warum der Benutzer abgemeldet wird.

Scheint, wie ich bin nicht der einzige, der Probleme mit dieser oder ähnlichen Problem hat:

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

Hinweis: Sonder hadoop Benutzer erstellen hatte eigentlich nicht das Problem in meinem Fall gelöst - aber begrenzt die Logouts an den dedizierten Benutzer.

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

Ist es möglich, dass einige Probleme rund um die UserGroupInformation Klasse (das kann unter Umständen dazu führen, eine Abmeldung), mit vielleicht einigen Änderungen in systemd in ubuntu 16.04 dieses Verhalten verursachen können?

Die letzten Zeilen von hadoop Protokoll, das ich vor der Abmeldung erhalten:

... 
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. 

Antwort

5

ich auch das Problem hatte. Ich brauchte Zeit, aber ich fand die Lösung hier: https://unix.stackexchange.com/questions/293069/all-services-of-a-user-are-killed-when-running-multiple-services-under-this-user

Grundsätzlich, einige Hadoop-Prozesse einfach aufhören, weil warum nicht. Aber systemd scheint alle Prozesse des Benutzers zu zerstören, wenn er den Prozess eines Dienstes stirbt sehen.

Das Update ist

[login] 
KillUserProcesses=no 

zu /etc/systemd/logind.conf und Neustart hinzuzufügen.

Ich hatte mehrere Ubuntu-Version, um das Problem zu debuggen, und das Update scheint nur auf Ubuntu 16.04 funktioniert.

+0

Ich aktualisierte die logind.conf-Datei. Dies funktionierte auf meinem Laptop, aber nicht auf der VM, die ich benutze. –

3

Ich hatte das gleiche Problem auch. Schließlich fand ich /bin/kill in ubuntu16.04 has bug in killing process group kann dieses Problem lösen.

Wenn pid kleiner als -1 ist, dann sig wird jeder Prozess in der Prozessgruppe gesendet, dessen ID -pid

Wegen der Fehler in procps-ng -3.3.10, kill die Prozessgruppe, deren ID mit 1 beginnt, aufgerufen von bin/yarn application -kill AppID, wird die Benutzerabmeldungen verursachen.

Das Problem wird gelöst, nachdem /bin/kill durch die neue kill ersetzt wurde, die aus procps-ng-3.3.12 kompiliert wurde.

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

Ich hatte das gleiche Problem. Ich verwendete Apache APEX, das nativ ist. Während des Tötens einer APEX-Anwendung wurde mein System verwendet, um mich abzumelden.

Lösung: Ersetzen Sie das Kill-Datei (in/bin/kill) von Ubuntu 16 mit Kill-Datei von Ubuntu 14.

alles glatt, bevor sie für mich funktioniert wie ein Upgrade.

Verwandte Themen