mesos集群安装
1、说明
Mesos是一个集群资源管理的软件,利用它可以实现多种并行计算框架对于同一个集群资源的共享和利用。从而提高资源的使用效率,节约成本!本文是参考网上一位兄弟的安装,结合自己的环境,整理的安装指导:
2、软件准备
环境:
有三台机器IP地址分别为:
75,76,79
Mesos版本
mesos-0.17.0.tar.gz
三台机器系统版本:
Red Hat Enterprise Linux Server release 6.2 (Santiago)
挂载安装光盘
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
配置yum为本地源
直接编辑/etc/yum.conf文件,增加下面的配置
[Server]
name=Yum Source
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
所需依赖软件版本:
1、Python2.6及其以上版本均可
2、jdk1.6以上的版本
拷贝一个jdk安装包到本地
新建一个文件vi /etc/profile.d/java.sh
JAVA_HOME=/usr/java/jdk
PATH=$PATH:/$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib
JRE_HOME=$JAVA_HOME/jre
export JAVA_HOME PATH CLASSPATH JRE_HOME
3、ant
4、g++ 4.1或更高版本
rpm -ivh kernel-headers-2.6.32-220.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.47.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.47.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh cpp-4.4.6-3.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh gcc-4.4.6-3.el6.x86_64.rpm
rpm -ivh pcre-devel-7.8-3.1.el6.x86_64.rpm
rpm -ivh libxml2-devel-2.7.6-4.el6.x86_64.rpm
rpm -ivh bison-2.4.1-5.el6.x86_64.rpm
rpm -ivh libstdc++-4.4.6-3.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.6-3.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.6-3.el6.x86_64.rpm
5、安装libtool
rpm -ivh autoconf-2.63-5.1.el6.noarch.rpm
rpm -ivh automake-1.11.1-1.2.el6.noarch.rpm
rpm -ivh libtool-2.2.6-15.5.el6.x86_64.rpm
6、安装python支持文件
rpm -ivh python-devel-2.6.6-29.el6.x86_64.rpm
7、安装libcurl
rpm -ivh libidn-devel-1.18-2.el6.x86_64.rpm
rpm -ivh libcurl-devel-7.19.7-26.el6_1.2.x86_64.rpm
8、安装sasl
rpm -ivh cyrus-sasl-devel-2.1.23-13.el6.x86_64.rpm
9、zlib
rpm -ivh zlib-devel-1.2.3-27.el6.x86_64.rpm
10、安装Python2.6或以上版本(有的话忽略此步骤)
[root@Arion3 ~]# tar jxf Python-2.6.tar.bz2
[root@Arion3 ~]# cd Python-2.6
[root@Arion3 Python-2.6]# ./configure --enable-shared --prefix=/usr/local/python2.6
../configure --with-webui --with-included-zookeeper
[root@Arion3 Python-2.6]# make
[root@Arion3 Python-2.6]# make install
[root@Arion3 ~]# cd /usr/bin/
[root@Arion3 ~]# mv pyhton python2.4
[root@Arion3 ~]# ln -sf /usr/local/python2.6/bin/python /usr/bin/python
[root@Arion3 ~]# vi /usr/bin/yum
将其中#!/usr/bin/python改为!/usr/bin/python2.4
[root@Arion3 ~]# vi /etc/ld.so.conf
在其中追加python2.6的库路径:/usr/local/python2.6/lib/
[root@Arion3 ~]# ldconfig
安装的时候注意,因为yum是用Python2.4版本写的,所以一般系统中会带有Python2.4,我们在安装Python2.6时候,不能将原来的版本卸载,否则会导致yum不能使用。
3、主机配置
下面开始安装步骤:
1、集群中的三台机器有如下对应关系:
193.168.1.75 master
193.168.1.76 slave1
193.168.1.79 slave2
2、分别修改三台机器的/etc/hosts文件,在其中追加以上内容,修改后hosts文件的内容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
10.10.42.3 Arion3 localhost.localdomain localhost//注意这里,一定要将开头的127.0.0.1换成机器本身的IP地址否则当你安装完毕,启动的时候会报HTTP通信异常!!这里一定要注意!!!
#::1 localhost6.localdomain6 localhost6
#10.10.42.2 newcloud.guoshi.com
#mesos
192.168.1.75 host75 host75
192.168.1.75 master
192.168.1.76 slave1
192.168.1.79 slave2
3、配置ssh,以确保Master可以无密码登录到slave1和slave2两台机器上!配置过程比较的简单,以root用户为例来说明,其他用户也是一样的。
在master节点上执行命令ssh-keygen -t rsa,在/root/.ssh中生成/root/.ssh/id_rsa.pub。
执行cat id_rsa.pub>> authorized_keys
将master上的id_rsa.pub这个文件拷贝到slaves上,再slaves上重复执行cat id_rsa.pub>> authorized_keys
4、编译安装
(1)从镜像网站下载Mesos 0.9.0-incubating,得到压缩文件mesos-0.9.0-incubating.tar.gz。
(2) 将压缩文件拷贝到master结点的某个目录中,使用如下命令解压文件, 得到文件夹mesos-0.9.0,进入该文件。
[root@Arion3 ~]# tar zxf mesos-0.9.0-incubating.tar.gz
(3)进入文件夹mesos-0.9.0后,使用configure脚本配置mesos。
find / -type d -name python2.6
../configure --with-webui --with-included-zookeeper --prefix=/usr/local/mesos
如果没有指定prefix,默认安装在/usr/local
(4)make
make check (执行测试用例)
(5)make install
(6)分别在slave1和slave2两台机器上用相同的用户目录,重复上述5个步骤。
5、Mesos配置
(7)在master结点上做如下两个配置:
编辑文件/usr/local/var/mesos/deploy/masters(如果没有可以创建),在文件中列出主结点的主机名或者IP地址。
编辑文件 /usr/local/var/mesos/deploy/slaves(如果没有可以创建),在文件中列出从结点的主机名或者IP地址。
我的配置如下所示:
#masters文件的内容
master
#slaves文件的内容
slave1
slave2
slave3
编辑文件/usr/local/var/mesos/conf/mesos.conf(如果没有可以创建),配置主结点的日志文件目录。我的配置如下:
log_dir=/home/ mesos/log/
(8)在所有从结点上做如下配置。 编辑conf文件(如果没有可以创建),配置从结点的日志文件目录、主结点URI和从结点资源。从结点的资源可以根据每个结点的CPU和内存的空闲情况进行配置,以供mesos调度使用。其中cpus后面的数字代表CPU有几个核,而mem后面的数字代表分配多少空闲内存给mesos使用,单位是MB。
master=master:5050
log_dir=/home/ mesos/log
resources=cpus:8;mem:3200
内存单位是MB
(9)启动与停止mesos集群管理器。 如果配置正确无误,就可以进入目录 /usr/local/sbin/,使用如下命令启动集群管理器:
master节点上:
nohup ./mesos-master --ip=193.168.1.75 --whitelist="/usr/local/var/mesos/deploy/slaves" >/dev/null 2>&1 &
注:一定要将slaves加入到whitelist中。
slave节点上:
nohup ./mesos-slave --master=193.168.1.75:5050 >/dev/null 2>&1 &
(10) mesos启动后,可以通过Web界面来查看集群中的资源,以及集群中正在运行的框架和任务。具体的访问方式是通过浏览器访问master结点的8080接口,即http://master:5050/。如果mesos启动正常,可以在该web界面上看到整个集群的资源总和和每一个slave结点的资源。如果有框架正在运行,还可以看到框架的信息,以及正在执行的任务信息。
6、测试默认案例:
1、测试默认的framework
/opt/mesos-0.17.0/build/src
[root@host75 src]# ./test-framework --master=193.168.1.75:5050
I0326 16:32:22.872979 16936 sched.cpp:218] No credentials provided. Attempting to register without authentication
I0326 16:32:22.873389 16936 sched.cpp:230] Detecting new master
Registered!