Problem: Wir versuchen, einige Befehle auf einem bestimmten Host-Rechner unseres Clusters auszuführen. Wir haben SSH Action für dasselbe gewählt. Wir stehen seit einiger Zeit vor diesem SSH-Problem. Was könnte das wirkliche Problem hier sein? Bitte zeigen Sie mir auf die Lösung.
Protokolle:
AUTH_FAILED: Nicht in der Lage Operation auszuführen [ssh -o PasswordAuthentication = no -o KbdInteractiveDevices = no -o StrictHostKeyChecking = no -o Connect = 20 [email protected] mkdir -p Oozie-Oozi / 0.000.000-131008185935754-oozie- oozi-W / aktion1 - ssh /] | ErrorStream: Warnung: Permanent hinzugefügt Host, 1.2.3.4 (RSA) zu der Liste der bekannten Hosts. Berechtigung verweigert (publickey, gssapi-keyex, gssapi-with-mic, Passwort).
org.apache.oozie.action.ActionExecutorException: AUTH_FAILED: Nicht in der Lage Operation auszuführen [ssh -o PasswordAuthentication = no -o KbdInteractiveDevices = no -o StrictHostKeyChecking = no -o Connect = 20 [email protected] mkdir -p oozie-oozi / 0000000-131008185935754-oozie-oozi-W / aktion1 - ssh /] | ErrorStream: Warnung: 1.2.3.4.192.168.34.208 (RSA) dauerhaft zur Liste der bekannten Hosts hinzugefügt. Berechtigung verweigert (publickey, gssapi-keyex, gssapi-with-mic, Passwort).
%Vor%Verursacht durch: java.io.IOException: Nicht in der Lage Operation auszuführen [ssh -o PasswordAuthentication = no -o KbdInteractiveDevices = no -o StrictHostKeyChecking = no -o Connect = 20 [email protected] mkdir -p Oozie-Oozi / 0000000-131008185935754-oozie-oozi-W / aktion1 - ssh /] | ErrorStream: Warnung: "1.2.3.4.1.2.3.4" (RSA) dauerhaft zur Liste der bekannten Hosts hinzugefügt. Berechtigung verweigert (publickey, gssapi-keyex, gssapi-with-mic, Passwort).
%Vor%2013.10.09 12: 48: 25.982 WARN org.apache.oozie.command.wf.ActionStartXCommand: USER [user] GROUP [-] token [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi -W] ACTION [0.000.000-131008185935754-Oozie-Oozi-W @ action1] Suspending Workflow-Job id = 0.000.000-131008185935754-Oozie-Oozi-W 2013.10.09 12: 48: 27.204 WARN org.apache.oozie.command.coord.CoordActionUpdateXCommand: USER [user]-Gruppe [-] TOKEN [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi-W] ACTION [0.000.000-131008185935754-Oozie-Oozi-W @ action1] E1100: Kommando Voraussetzung nicht gilt vor der Ausführung, [, coord Aktion ist null], Fehlercode: E1100 2013.10.09 12: 59: 57.477 INFO org.apache.oozie.command.wf.KillXCommand: USER [user]-Gruppe [-] TOKEN [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi-W] ACTION [-] STARTED WorkflowKillXCommand für jobId = 0000000-131008185935754-oozie-oozi-W 2013.10.09 12: 59: 57.685 WARN org.apache.oozie.command.coord.CoordActionUpdateXCommand: USER [user]-Gruppe [-] TOKEN [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi-W] ACTION [-] E1100: Befehlsvoraussetzung gilt nicht vor Ausführung, [, Koordaktion ist Null], Fehlercode: E1100 2013.10.09 12: 59: 57.686 INFO org.apache.oozie.command.wf.KillXCommand: USER [user]-Gruppe [-] TOKEN [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi-W] ACTION [-] ENDED WorkflowKillXCommand für jobId = 0000000-131008185935754-oozie-oozi-W 2013.10.09 13: 41: 32.654 WARN org.apache.oozie.command.wf.KillXCommand: USER [user]-Gruppe [-] TOKEN [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi-W] ACTION [-] E0725: Workflow-Instanz kann nicht gelöscht werden, 0000000-131008185935754-oozie-oozi-W, Fehlercode: E0725 2013.10.09 13: 41: 45.199 WARN org.apache.oozie.command.wf.KillXCommand: USER [user]-Gruppe [-] TOKEN [] APP [Test] JOB [0.000.000-131008185935754-Oozie-Oozi-W] ACTION [-] E0725: Workflow-Instanz kann nicht gelöscht werden, 0000000-131008185935754-oozie-oozi-W, Fehlercode: E0725 2013-10-09 13: 42: 04,869 WARN org.apache.oozie.command.wf.ResumeXCommand: USER [Benutzer] GROUP [-] TOKEN [] APP [Test] JOB [0000000-131008185935754-oozie-oozi-W] ACTION [-] E1100: Die Befehlsvoraussetzung gilt nicht vor der Ausführung, [der Status des Workflows lautet KILLED ist nicht SUSPENDED], Fehlercode: E1100 2013-10-09 13: 45: 56.357 WARN org.apache.oozie.command.wf.KillXCommand: USER [Benutzer] GROUP [-] TOKEN [] APP [Test] JOB [0000000-131008185935754-oozie-oozi-W] ACTION [-] E0725: Workflow-Instanz kann nicht gelöscht werden, 0000000-131008185935754-oozie-oozi-W, Fehlercode: E0725
Approached versucht:
Danke;
Kasa.
Ich habe gerade ein ähnliches Problem gefunden. Ich hatte einen Fall, wo ich als USER laufen könnte:
%Vor%von Hand in der Befehlszeile und es hat funktioniert, aber wenn es über Oozie als USER gestartet wurde, ist es fehlgeschlagen.
Der Grund, in meinem Fall fehlgeschlagen ist, dass ich passwordless ssh zwischen USER auf dem Oozie-Server und USER auf dem Remote-Rechner eingerichtet habe. Was Sie tun müssen, ist passwordless SSH zwischen Oozie auf dem Oozie-Server und USER auf dem Remote-Rechner einrichten. Mit anderen Worten, su, um auf dem Oozie-Server zu arbeiten und den obigen Befehl von Hand auszuführen. Wenn es scheitert, wird es in Oozie scheitern. Wenn es funktioniert, dann sollte es in Oozie funktionieren (vorausgesetzt, alles andere ist korrekt, wie die Dir-Berechtigungen, etc.)
Sehen Sie sich an, auf welchem Benutzer Ihr oozie Server läuft:
%Vor%Welcher Benutzer auch immer benötigt wird, muss passwordless ssh zu USER auf dem entfernten Rechner sein.
Was auch immer quux00 beantwortet hat, ist richtig. Ich füge nur einige Punkte hinzu. Da der Befehl ssh in der ssh-Aktion von oozie user ausgeführt wird, müssen Sie oozie als Bash-Benutzer festlegen.
Dazu müssen Sie die Datei / etc / passwd auf allen Knoten des Clusters ändern. Suchen Sie den folgenden Wert (ähnlich) in der Datei / etc / passwd.
%Vor%und ändern Sie es in
%Vor%was den Benutzer oozie zu einem Bash-Benutzer macht. Und dann fahren Sie fort mit der passwortlosen Authentifizierung zwischen dem oozie-Benutzer und jedem anderen Benutzer, den Sie auf einem beliebigen Host-Computer haben wollen.
Und versuchen Sie dann, den Oozie-Job erneut auszuführen. Und lassen Sie mich wissen, ob es funktioniert. Hoffe es hilft !!!
Das ist ein sehr schwieriges Problem und ich konnte es nur hacken. Ich war nicht zufrieden mit der Antwort hier gegeben, also hier meine meine Version. Folgende fehlgeschlagen für mich (ich konnte in Protokollen sehen)
%Vor%Aber wenn derselbe Befehl versucht, aber KbdInteractiveDevices = no entfernt oder KbdInteractiveDevices = pam geändert wurde, hat es funktioniert
%Vor%Wie auch immer, ich denke, es gab ein Problem mit dem alten SSH-Schlüssel, also habe ich versucht, zu folgen und es funktioniert
%Vor%Nachdem Sie alle obigen Vorschläge befolgt haben
%Vor%und ändern Sie es in
%Vor%Probieren Sie diese Schritte aus:
Erstellen Sie eine kennwortlose Kommunikation Verwenden Sie den folgenden Prozess:
%Vor% Kopieren Sie den generierten öffentlichen Schlüssel auf Ihren lokalen Remote-Server wie apps@XXXXXXX
probiere ssh apps@XXXXXXX
, du wirst dich ohne Fehler bei remote anmelden
bash -x yourscript
parameter