配置方式
1.创建文件/etc/marathon/marathon,在里面填写Mesos master的参数信息,内容如下:
OPTIONS="--hostname 10.136.157.23 --master zk://10.136.157.23:2181/mesos --zk zk://10.136.157.23:2181/marathon"
2.在目录/usr/lib/systemd/system下创建文件marathon.service,文件内容如下:
[Unit]
Description=Marathon service
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
EnvironmentFile=/etc/marathon/marathon
ExecStart=/home/mesos/marathon/bin/marathon $OPTIONS
PrivateTmp=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
3.启动Marathon
systemctl start marathon
4.设置Marathon开机启动
systemctl enable marathon
遇到的问题
按照上面的方式配置完成后,启动marathon服务,通过
systemctl status marathon
命令也可以看到marathon服务已经启动,但是访问http://{hostname}:8080/确提示“无法访问此网站”
查看启动日志
所以,我就去查看marathon的启动日志,由于是使用systemctl来启动marathon的,日志存放在/var/log/message下,在日志中发现如下异常信息:
Dec 30 05:19:48 bj3-136-157-23-c2-128 marathon: Failed to load native Mesos library from /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: [2018-12-30 05:06:42,075] #033[1;31mERROR#033[0;39m Terminating 8080 due to uncaught exception in thread JMX exporting thread:1 (mesosphere.marathon.MarathonApp:JMX exporting thread)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: java.lang.UnsatisfiedLinkError: no mesos in java.library.path
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at java.lang.Runtime.loadLibrary0(Runtime.java:870)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at java.lang.System.loadLibrary(System.java:1122)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at org.apache.mesos.MesosNativeLibrary.load(MesosNativeLibrary.java:163)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at org.apache.mesos.MesosNativeLibrary.load(MesosNativeLibrary.java:188)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at mesosphere.mesos.LibMesos$.version$lzycompute(LibMesos.scala:25)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at mesosphere.mesos.LibMesos$.version(LibMesos.scala:23)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at mesosphere.mesos.LibMesos$.isCompatible(LibMesos.scala:41)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at mesosphere.marathon.MarathonApp.start(Main.scala:107)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at mesosphere.marathon.Main$.main(Main.scala:206)
Dec 30 05:06:42 bj3-136-157-23-c2-128 marathon: at mesosphere.marathon.Main.main(Main.scala)
Dec 30 05:06:42 bj3-136-157-23-c2-128 systemd: marathon.service: main process exited, code=exited, status=137/n/a
解决方案参考我的另一篇文章:https://www.jianshu.com/p/331a4e705013