我尝试使用marathon在mesos集群上部署测试java程序。我创建了一个带有所有必需的jar和配置文件的tar球。 tar还有一个启动应用程序的cmd.sh。 Cmd.sh片段
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程序是无状态的(使用zookeeper作为状态),我打算运行这个应用程序的几个实例。请随时建议启动或部署此类应用程序的其他方法。
答案 0 :(得分:0)
运行sh -c vs运行from tar时,请检查路径。