2017-01-10 43 views
0

我一直在嘗試在DC/OS(1.8.7)馬拉松上配置Apache Ignite,使用官方文檔http://apacheignite.gridgain.org/docs/mesos-deployment,但缺少一些hacks我避難所在文檔之後無法使其發揮作用。其中一個核心原因似乎是cmd關於DC/OS馬拉松(或任何其他Java應用程序)的Apache Ignite

"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 
} 
+0

嘗試向'env'添加'PATH',或者使用'java'可執行文件的完整路徑。 –

+0

''JAVA_HOME \ bin'變量應該在'PATH'中登記 –

+0

我已經檢查過,並且java在路徑上以及JAVA_HOME已設置(在根帳戶以及我相信是馬拉松運行的那個) –

回答

1

點燃似乎希望每個代理節點上的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

相關問題