设置Marathon开机自启动

配置方式

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容