2016-07-17 5 views
5

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

多分Ubuntuの16.04でsystemdにでいくつかの変更は、この動作を引き起こす可能性がありますし、UserGroupInformationクラス (つまり、いくつかの状況下でログアウトを引き起こす可能性があります)の周りにいくつかの問題、それが可能ですか?

私がログアウトする前に取得した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 
[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. 

答えて

5

私も問題を抱えていました。時間がかかりましたが、ここで解決策を見つけました: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でしか動作しないようです。

+0

私はlogind.confファイルを更新しました。これは私のラップトップでは動作しましたが、私が使用しているVMでは動作しませんでした。 –

3

私も同じ問題がありました。最後に、私は/bin/kill in ubuntu16.04 has bug in killing process groupがこの問題を解決できることを発見しました。 PIDが-1未満の場合、SIGがprocpsの-ngの中でバグのためID -pid

あるプロセスグループ内のすべてのプロセスに送られ

-3.3.10、IDが1で始まり、bin/yarn application -kill AppIDで起動されたプロセスグループを強制終了すると、ユーザーログアウトが発生します。

/bin/killをprocps-ng-3.3.12からコンパイルされた新しいkillに置き換えて問題を解決しました。

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

私は同じ問題がありました。私はhadoopネイティブのApache APEXを使用していました。 APEXアプリケーションを強制終了すると、私のシステムは私をログアウトしていました。

ソリューション:14

すべてが前に私のためのアップグレードのようにスムーズに動作のUbuntuのキルファイルとUbuntuの16の(/ binに/キルに存在する)キルファイルを置き換えます。

関連する問題