我有三个安装了docker的节点。在主节点,我运行mesos和马拉松没有任何问题。具体如下:首先我用这个命令进入docker:
docker run -v /home/user/.ssh:/root/.ssh --privileged -p
5050:5050 -p 5051:5051 -p 5052:5052 -p 2181:2181 -p 8082:8081
-p 6123:6123 -p 8080:8080 -p 50090:50090 -p 50070:50070 -p
9000:9000 -p 2888:2888 -p 3888:3888 -p 4041:4040 -p 7077:7077
-p 52222:22 -e WEAVE_CIDR=10.32.0.2/12
-e MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins
-e LIBPROCESS_IP=10.32.0.2
-e MESOS_RESOURCES=ports*:[11000-11999]
-ti hadoop_marathon_mesos_flink_2 /bin/bash
然后我为zookeeper和mesos运行以下命令:
/home/zookeeper-3.4.14/bin/zkServer.sh restart
/home/mesos-1.7.2/build/bin/mesos-master.sh --ip=10.32.0.1
--hostname=10.32.0.1 --roles=marathon,flink --quorum=1
--work_dir=/var/run/mesos --log_dir=/var/log/mesos
跑完mesos后,我打开另一个终点站跑马拉松:
docker run exec -it container-id /bin/bash
然后我跑马拉松没有任何问题:
/home/marathon-1.7.189-48bfd6000/bin/marathon
--master 10.32.0.1:5050 --zk zk://10.32.0.1:2181/marathon
--hostname 10.32.0.1 --webui_url 10.32.0.1:8080
--logging_level debug
为了测试marathon,我编写了一个简单的scipt来打印一个字符串,它在docker容器中运行良好。但是,当我创建一个新的应用程序来运行脚本时,由于以下错误,它不会运行:
i0428 05:32:09.167528 5115执行。cpp:162]版本:1.7.2
i0428 05:32:09.177440 5117执行。cpp:236]登记在代理人984595ae-e811-48fb-a9f5-ca6128e1cc1a-s0上的遗嘱执行人
i0428 05:32:09.179848 5120执行人。cpp:188]已收到订阅的事件
i0428 05:32:09.180785 5120执行人。cpp:192]10.32.0.3认购执行人
i0428 05:32:09.180997 5120执行人。cpp:188]已接收启动事件
i0428 05:32:09.182319 5120执行人。cpp:697]启动任务测试f76ace45-6976-11e9-928f-ce235caa831e
i0428 05:32:09.196890 5120执行人。cpp:712]5124 sh:1:/home/test.sh:未找到分叉命令
i0428 05:32:09.369120 5119执行人。cpp:1013]命令退出,状态为127(pid:5124)
i0428 05:32:10.376525 5123过程。cpp:927]停止了套接字接受循环
这意味着marathon不知道docker容器中的应用程序。你能指导我怎么解决这个问题吗?我还在marathon中设置了docker映像,但是任务再次失败,mesos ui在sandbox中没有任何日志。
请帮帮我。
先谢谢你。
1条答案
按热度按时间w6lpcovy1#
问题解决了。我必须将应用程序放在从节点中的docker容器上。我做到了,应用程序在马拉松中运行。