2016-03-31 15 views
0

私は、マラソンを使ってmesosクラスターにテスト用のJavaプログラムをデプロイしようとしています。私は、すべての必要なjarファイルとconfigファイルでタールボールを作成しました。 tarには、アプリを起動するcmd.shもあります。 Cmd.shスニペットmarathon start java program

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 

このtarはURIとして提供されています。ログファイルで、tarが正しくダウンロードされ、解凍されていることがわかります。しかしエラーが発生して実行が失敗する

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 

なぜJavaが見つかりませんか?私はカスタムコンテナを使用していません。私が設定したパラメータはid、cpu、mem、instance、uri、cmd = cmd.shです。

これはJavaアプリケーションを実行するための推奨された方法ですか?私のJavaプログラムはステートレスです(状態のために動物園を使います)。私はこのアプリのいくつかのインスタンスを実行しようと考えています。そのようなアプリを起動または展開する別の方法をお勧めします。

+0

javaのフルパスを入力してください。 – user2260040

+0

私は何が起こっているのか理解し、一般的なアプローチについてのフィードバックを得ることができます。 BTW、同じスレーブノードで、私はtarballをscpして、sh -c cmd.shでアプリケーションを実行することができます。 – Cheeko

+1

sh -cを実行したときにパスを確認してから、tarを実行しています。 – user2260040

答えて

0

tarからsh -c vsを実行するときにパスを確認してください。