我已经正确设置了一个主控和两个从控的mesos cluser。我要做的是使用mesos execute框架在集群上运行jar文件。我可以用它来运行简单的命令,比如:
mesos-execute --master=mesosr:5050 --name="simple-test" --command=echo "hello"
它将按预期运行。但是,如果我尝试用“java-jar helloworld.jar”之类的命令替换echo“hello”命令,它将无法工作。
我设法找出了问题,但不知道如何解决。问题是,这个命令不是从主目录运行的,它是从类似的地方运行的
/var/lib/mesos/slaves/3f5439b1-7fab-45d6-876e-7e75b7c15fc9-S0/frameworks/3f5439b1-7fab-45d6-876e-7e75b7c15fc9-0043/executors/java-test/runs/7c20baff-080f-48ee-95fc-3662c388744b
我通过在mesos execute上运行“pwd”命令得到了这个路径。
现在,我的问题是,我该怎么离开那里?cd坏了。有没有什么方法可以让我进入主文件夹或一个特殊的文件夹,我可以把我的jar,使他们可以访问mesos执行?
这个应用程序的用例是需要在集群上运行很多小jar文件。他们不必活着,所以我不会用马拉松之类的东西来装这些jar。
谢谢您。
2条答案
按热度按时间jljoyd4f1#
好吧,我想好了怎么做。
我完全错了,也许不是在工作日结束时处理新事物的最好办法。
我试图做的是将目录更改为主目录,作为mesos execute命令的一部分。这是不允许的。运行位于主目录中的jar的方法是在java-jar命令中指定jar的路径。最后一个命令是这样的:
这是可行的,jar在集群上执行。
uyto3xhc2#
从
mesos-execute -h
--task_group=VALUE
该值可以是json格式的字符串TaskGroupInfo
或者包含json格式的TaskGroupInfo
. 路径的格式必须为file:///path/to/file
或者/path/to/file
. 看到了吗TaskGroupInfo
中的消息mesos.proto
对于预期格式。注:agent_id
不需要设置。例子:
你最感兴趣的是
command
部分。在那里,你可以定义你的任务和它需要下载的所有文件来正确运行。命令的所有可能配置选项都在commandinfo中指定。