如何使用Mesos-Execute运行罐子



我已经用一个主和两个奴隶正确地设置了我的中物cluser。我要做的是使用Mesos-Execute框架在群集上运行JAR文件。我可以使用它来运行以下简单命令,例如:

mesos-execute --master=mesosr:5050 --name="simple-test" --command=echo "hello"

将按预期运行。但是,如果我尝试用" java -jar helloworld.jar"之类的东西替换该回声" 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不起作用。我有什么办法可以到达主文件夹或一个特殊的文件夹,我可以将罐子放置在Mesos-Execute上可以访问?

此应用程序的用例是,将有很多小罐子文件必须在群集上运行。他们不必活着,所以我没有在这些罐子里使用像马拉松这样的东西。

谢谢。

来自 mesos-execute -h

--task_group=VALUE值可以是TaskGroupInfo的JSON-formatting字符串,也可以是包含JSON-Formatted TaskGroupInfo的文件路径。路径必须为file:///path/to/file/path/to/file的形式。有关预期格式,请参见mesos.proto中的TaskGroupInfo消息。注意: 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中指定。

好吧,所以我想出了如何做。

我犯了这一切都错了,也许不是在工作日结束时解决新事物的最佳主意。

我想做的是将目录作为Mesos-Execute命令的一部分更改为主目录。这是不允许的。运行位于主目录中的JAR的方法是指定Java -Jar命令中的jar的路径。因此,有效的最终命令看起来像这样:

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

这有效,罐子在群集上执行。

最新更新