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

时间:2017-01-10 00:57:35

标签: java mesos ignite marathon dcos

我一直在尝试使用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:command not found”。这表明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
}

1 个答案:

答案 0 :(得分:1)

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

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