2016-03-31 4 views
0

Ich versuche, ein Test-Java-Programm auf Mesos-Cluster mit Marathon zu implementieren. Ich habe einen Tar Ball mit allen benötigten Jars und Konfigurationsdateien erstellt. Der tar hat auch eine cmd.sh, die die App startet. Cmd.sh-AusschnittMarathon Start Java-Programm

chmod a+rx *.jar 
java -ea -Dlog4j.configuration="file:./log4j.prod.properties" -cp my-app-0.1-SNAPSHOT.jar:lib/* package.name.main.class.name 

Dieser tar wird als URI bereitgestellt. Ich kann in der Protokolldatei sehen, dass tar heruntergeladen und korrekt entpackt wurde. Aber Ausführung schlägt mit Fehler fehl

I0331 23:00:35.135365 30558 exec.cpp:134] Version: 0.27.1 
I0331 23:00:35.137852 30588 exec.cpp:208] Executor registered on slave 11aaafce-f12f-4aa8-9e5c-200b2a657225-S1 
./cmd.sh: line 5: java: command not found 

Irgendeine Idee, warum es java nicht findet? Ich verwende keinen benutzerdefinierten Container. Nur die Parameter, die ich gesetzt habe, sind id, CPU, Speicher, Instanz, uri und cmd = cmd.sh

Ist das die empfohlene Weise, Java apps zu laufen? Mein Java-Programm ist statuslos (verwendet Zoowärter für den Staat) und ich beabsichtige, mehrere Instanzen dieser App auszuführen. Bitte zögern Sie nicht, alternative Möglichkeiten zum Starten oder Bereitstellen einer solchen App vorzuschlagen.

+0

Warum geben Sie nicht den vollständigen Pfad zu Java ein? – user2260040

+0

Ich könnte, aber ich würde gerne verstehen, was passiert und Feedback über die allgemeine Vorgehensweise erhalten. BTW, auf dem gleichen Slave-Knoten kann ich den Tarball scp scannen und meine App mit sh -c cmd.sh laufen lassen. – Cheeko

+1

Überprüfen Sie den Pfad, wenn Sie sh -c vs ​​den von tar ausführen. – user2260040

Antwort

0

Bitte überprüfen Sie den Pfad, wenn Sie sh -c vs ​​den von tar ausführen.

Verwandte Themen