2017-01-10 1 views
0

Я пытаюсь настроить Apache Ignite на DC/OS (1.8.7) марафон, используя официальные документы в http://apacheignite.gridgain.org/docs/mesos-deployment, но не хватает некоторых хаков Он не смог заставить его работать после документов. Одна из основных причин заключается в том, что cmdApache Ignite on на марафоне DC/OS (или любом другом приложении java)

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

через ошибку "sh: java: command not found". Это означало бы, что java не находится на пути, но на хостах марафона я проверял, что Java фактически доступен на пути для моего обычного пользователя.

Я подозреваю, что каким-то образом java нужно добавить к пути к контейнеру mesos, который пытается запустить cmd, но мне не удалось найти документацию о том, как установить путь или переменные среды по умолчанию (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 
} 
+0

Попробуйте (или оба) добавить 'PATH' в' env' или использовать полный путь к исполняемому файлу 'java'. –

+0

Также переменная '$ JAVA_HOME \ bin' должна быть зачислена в' PATH' –

+0

Я проверил, и java находится на пути, а также установлен JAVA_HOME (в корневой учетной записи, которая, как я полагаю, является марафоном) –

ответ

1

Ignite, кажется, ожидать JDK установки 1,7/1,8 на каждом узле агента, а переменная JAVA_HOME среды устанавливается соответствующим образом.

К сожалению, структура Mesos, похоже, не поддерживается, поскольку она по-прежнему использует библиотеки Mesos 0.22.

+0

каждый узел агента, по-видимому, имеет JAVA_HOME. когда вы говорите, что структура Mesos не поддерживается хорошо, вы имеете в виду реализацию Ignite? –

+0

Да, механизм Ignite ... Он использует довольно старую версию библиотеки Mesos. Я имел в виду, что вам нужно, по-видимому, установить JDK для каждого агента вручную. – Tobi

+0

. Я не уверен на 100%, если бы это работало даже с новыми версиями Mesos, как вы указали в комментарии выше. – Tobi

Смежные вопросы