安装了将近一周的环境了,终于把Mesos以及Marathon给安装上了,我指的离线安装。
策略1:
严格的按照官网的流程:
http://mesos.apache.org/gettingstarted/
找一台能够上网的机器,通过yum install/update --downloadonly --downloaddir=/opt/XXX
但是所有的yum下载都不要安装而是缓存到本地指定的文件夹(默认会缓存到/var/cache/yum/...下面,但是目录有些繁琐,而且容易和别的安装混淆,另外还需要配置yum.cfg)
但是即使这样,yum并不能把所有的依赖下载下来,其中关于java的很多依赖还是需要手动去下载,使得手动下载,这里推荐一个好的网站吧(不要依赖包下到手抖,但是过程总是要走一遍):
http://pkgs.org
然后是Mesos的编译,也是需要在那台上网机器进行,因为Mesos的编译需要用到maven库,需要下载一些支持包,编译时间老长了(这个只是make,还不包括make chekc 和make install不要等到花儿都谢了,喝点茶,给女友媳妇煲个电话粥吧)
这里强调一下,你的编译路径非常重要,你的部署路径必须和编译路径是一致的的(我指的是一次编译到处运行,到处,指的是操作系统一致的情况);否则未来你在执行mesos-XX.sh的时候将会报错。
不要make check了,然后将yum下载的依赖包以及编译的包(最好压缩个包,很大的)统统的以着某种方式(U盘?)拷贝到你的离线安装的环境,然后通过
yum local install *
进行安装,安装过程你会发现一些依赖需要下载,参看上面提到的网址;
依赖安装完成后,就是将编译的结果进行安装,尽管官网上面写的是make install是(optional),但是其实是必须有的,否则后面使用Marathon的提交任务时候会报错,/usr/local下面找不到什么.so文件云云。所以,还是需要:
make install
这个过程会有很长一段时间报错:No matching distribution found for protobuf<4,>=2.6.1 (from mesos.interface==1.3.1->mesos.executor==1.3.1->mesos.native==1.3.1)
Processing ./mesos.scheduler-1.3.1-cp27-none-linux_x86_64.whl
Collecting mesos.interface==1.3.1 (from mesos.scheduler==1.3.1)
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by ‘ProtocolError(‘Connection aborted.‘, gaierror(-2, ‘Name or service not known‘))‘: /simple/mesos.interface/
不要理会他,让他翻滚,页面刷一会就好了。
然后是安装Marathon,按照官网来,貌似一切顺利,但是在启动的时候,发现报错,提示环境变量要指定ESOS_NATIVE_JAVA_LIBRARY,这个东西就是告诉Marathon到哪里去找libmesos.so文件;不要尝试在export的方式来指定,而是在指令前面指定(这种方式有点奇葩):
MESOS_NATIVE_JAVA_LIBRARY=/home/bd/mesos-1.3.1/build/src/.libs/libmesos.so ./bin/start --master local --zk zk://localhost:2181/marathon
尽管make install理论上是不需要指定MESOS_NATIVE_JAVA_LIBRARY,但是实际上如果不指定,就会报错:
Scheduler driver bound to loopback interface! Cannot communicate with remote master(s). You might want to set ‘LIBPROCESS_IP‘ environment variable to use a routable IP address.
基本上不需要尝试在前面指定LIBPROCESS_IP,我尝试过了,没用;但是添加上了MESOS_NATIVE_JAVA_LIBRARY则是可以的。
参考网站:
http://mesos.apache.org/gettingstarted/
http://blog.csdn.net/zhaoshensky/article/details/50760601
策略2:
rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
安装repo索引文件;
下载mesos和marathon的下载包
yum install/update --downloadonly --downloaddir=/opt/XXX mesos marathon
但是,明显下载的包不够,需要参看官网上面所需要的那些依赖,但是不需要编译mesos,这个至少可以节省5个小时的摸索时间,marathon也是无缝和mesos合作。
验证mesos安装,本机IP:5050
验证marathon安装,本IP:8080
参考网站:
http://www.linuxidc.com/Linux/2017-03/141478.htm