如何使用mesos execute运行jar

mspsb9vt  于 2021-06-26  发布在  Mesos
关注(0)|答案(2)|浏览(443)

我已经正确设置了一个主控和两个从控的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。
谢谢您。

jljoyd4f

jljoyd4f1#

好吧,我想好了怎么做。
我完全错了,也许不是在工作日结束时处理新事物的最好办法。
我试图做的是将目录更改为主目录,作为mesos execute命令的一部分。这是不允许的。运行位于主目录中的jar的方法是在java-jar命令中指定jar的路径。最后一个命令是这样的:

mesos-execute --master=mesosr:5050 --name="simple-test" --command="java -jar /home/user/jarFile.jar"

这是可行的,jar在集群上执行。

uyto3xhc

uyto3xhc2#


mesos-execute -h --task_group=VALUE 该值可以是json格式的字符串 TaskGroupInfo 或者包含json格式的 TaskGroupInfo . 路径的格式必须为 file:///path/to/file 或者 /path/to/file . 看到了吗 TaskGroupInfo 中的消息 mesos.proto 对于预期格式。注: agent_id 不需要设置。
例子:

{
    "tasks":
       [
          {
           "name": "Name of the task",
           "task_id": {"value" : "Id of the task"},
           "agent_id": {"value" : ""},
           "resources": [{
              "name": "cpus",
              "type": "SCALAR",
              "scalar": {
                  "value": 0.1
               }
             },
             {
              "name": "mem",
              "type": "SCALAR",
              "scalar": {
                  "value": 32
               }
            }],
           "command": {
              "value": "sleep 1000"
             }
         }
       ]
}

你最感兴趣的是 command 部分。在那里,你可以定义你的任务和它需要下载的所有文件来正确运行。命令的所有可能配置选项都在commandinfo中指定。

相关问题