Apache 点燃 DC/OS 马拉松(或任何其他 Java 应用程序)



我一直在尝试使用 http://apacheignite.gridgain.org/docs/mesos-deployment DC/OS (1.8.7) 马拉松式的官方文档配置 Apache Ignite,但除了一些黑客之外,我无法让它按照文档工作。核心原因之一似乎是 cmd

"cmd": "java -jar ignite-mesos-1.8.0.jar"

将通过错误"sh:java:找不到命令"。这表明 java 不在路径中,但在马拉松主机上,我已经验证了 java 实际上至少在我的普通用户的路径上是可以访问的。

我怀疑以某种方式需要将 java 添加到尝试运行 cmd 的 mesos-container 的路径中,但我无法找到任何有关如何在创建的容器中设置路径或默认环境变量的文档(ignite-mesos 生成需要设置JAVA_HOME任务,任务中也缺少)。作为参考,我的marathon.json文件如下...

{
  "id": "/ignition",
  "cmd": "java -jar ignite-mesos-1.8.0.jar",
  "args": null,
  "user": null,
  "env": {
    "IGNITE_MEMORY_PER_NODE": "2048",
    "IGNITE_NODE_COUNT": "3",
    "IGNITE_VERSION": "1.8.0",
    "MESOS_MASTER_URL": "zk://master.mesos:2181/mesos",
    "IGNITE_RUN_CPU_PER_NODE": "0.1"
  },
  "instances": 0,
  "cpus": 0.25,
  "mem": 2048,
  "disk": 0,
  "gpus": 0,
  "executor": null,
  "constraints": null,
  "fetch": [
    {
      "uri": "http://SERVER_HERE/ignite-mesos-1.8.0.jar"
    }
  ],
  "storeUrls": null,
  "backoffSeconds": 1,
  "backoffFactor": 1.15,
  "maxLaunchDelaySeconds": 3600,
  "container": null,
  "healthChecks": null,
  "readinessChecks": null,
  "dependencies": null,
  "upgradeStrategy": {
    "minimumHealthCapacity": 1,
    "maximumOverCapacity": 1
  },
  "labels": {
    "HAPROXY_GROUP": "external"
  },
  "acceptedResourceRoles": null,
  "ipAddress": null,
  "residency": null,
  "secrets": null,
  "taskKillGracePeriodSeconds": null,
  "portDefinitions": [
    {
      "protocol": "tcp",
      "port": 10108
    }
  ],
  "requirePorts": false
}

Ignite 似乎期望在每个代理节点上安装 JDK 1.7/1.8,并相应地设置JAVA_HOME环境变量。

不幸的是,Mesos 框架似乎没有得到很好的维护,因为它仍然使用 Mesos 0.22 库。

相关内容

最新更新