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结点的资源。如果有框架正在运行,还可以看到框架的信息,以及正在执行的任务信息。 

 
mesos集群安装

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!


mesos集群安装
 

<!--EndFragment-->

相关推荐