IT技术互动交流平台

集群资源管理软件Mesos的部署

作者:风箫夜吟  发布日期:2013-01-16 09:03:25

Mesos是一个集群资源管理的软件,利用它可以实现多种并行计算框架对于同一个集群资源的共享和利用。从而提高资源的使用效率,节约成本!关于Mesos的一些详细的介绍,在这里我就不再赘述这些东西,今天写这篇博文的目的主要是:详细的介绍一下Mesos在集群环境中的安装和配置过程。因为Mesos的社区并不是十分的活跃,研究它的人不算很多,所以在网上关于Mesos的安装配置的资料相当的有限,所以就把近一周部署的过程和遇到的问题跟大家分享一下,希望对于后来者有所帮助!

环境:

有三台机器IP地址分别为:

10.10.42.3、

10.10.42.4、

10.10.42.5。

三台机器系统版本

LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch

Distributor ID: CentOS

Description: CentOS release 5.4 (Final)

Release: 5.4

Codename: Final

三台机器配置

cpu:8核

内存:32G

所需依赖软件版本

1、Python2.6及其以上版本均可

2、jdk1.6以上的版本

3、ant

4、g++ 4.1或更高版本

下面开始安装步骤:

1、集群中的三台机器有如下对应关系

10.10.42.3 master

10.10.42.4 slave1

10.10.42.5 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

10.10.42.3 master

10.10.42.4 slave1

10.10.42.5 slave2

3、配置ssh,以确保Master可以无密码登录到slave1和slave2两台机器上!配置过程比较的简单,以root用户为例来说明,其他用户也是一样的。

[root@Arion3 ~]# cd //进入到了用户的主目录

[root@Arion3 ~]# cd .ssh/

[root@Arion3 .ssh]# ls //假如存在以下文件,说明密钥对存在,此时只需要将公钥文件:id_dsa.pub中的内容追加到slave1和slave2的授权文件中

authorized_keys id_dsa id_dsa.pub known_hosts

[root@Arion3 .ssh]# scp id_dsa.pub root@slave1:/root/.ssh/master.key.pub

[root@Arion3 .ssh]# scp id_dsa.pub root@slave2:/root/.ssh/master.key.pub

然后分别登陆slave1和slave2,进入到.ssh目录下执行以下命令:

[root@slave1 .ssh]#cat master.key.pub >> authorized_keys

[root@slave2 .ssh]#cat master.key.pub >> authorized_keys

这样就完成了master无密码登陆slave1和slave2的配置,假如我们发现密钥对不存在的时候怎么办呢?只需要执行以下命令即可:

[root@Arion3 .ssh]#ssh-keygen -t dsa //这样就产生出了密钥对,然后再进行上述操作就行了

4、安装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

[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不能使用。

5、下面开始安装步骤

(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。

./configure --with-python-headers=/usr/local/python2.6 --with-webui --with-java-home=/usr/local/jdk1.7.0_09 --with-java-headers=/usr/local/jdk1.7.0_09 /include/ --with-included-zookeeper CXXFLAGS="-march=i486"(32位的机器还要加上这个参数)--prefix=/home/ddx/mesos

(4)make

(5)make install

(6)分别在slave1和slave2两台机器上用相同的用户目录,重复上述5个步骤。

(7)在master结点上做如下两个配置:

编辑文件<prefix>/var/mesos/deploy/masters(如果没有可以创建),在文件中列出主结点的主机名或者IP地址。

编辑文件 <prefix>/var/mesos/deploy/slaves(如果没有可以创建),在文件中列出从结点的主机名或者IP地址。

我的配置如下所示:

 

#masters文件的内容

master

 

#slaves文件的内容

slave1

slave2

slave3

 

编辑文件<prefix>/var/mesos/conf/mesos.conf(如果没有可以创建),配置主结点的日志文件目录。我的配置如下:

log_dir=/home/ddx/mesos/log/

(8)在所有从结点上做如下配置。 编辑conf文件(如果没有可以创建),配置从结点的日志文件目录、主结点URI和从结点资源。从结点的资源可以根据每个结点的CPU和内存的空闲情况进行配置,以供mesos调度使用。其中cpus后面的数字代表CPU有几个核,而mem后面的数字代表分配多少空闲内存给mesos使用,单位是MB。 www.it165.net

 

master=master:5050

log_dir=/home/ddx/mesos/log

resources=cpus:8;mem:3200

 

(9)启动与停止mesos集群管理器。 如果配置正确无误,就可以进入目录 <prefix>/sbin/,使用如下命令启动集群管理器:

master节点上:

sbin/mesos-daemon

sbin/mesos-master --conf=<prefix>/var/mesos/conf/

slave节点上:

sbin/mesos-slave --conf=<prefix>/var/mesos/conf/

(10) mesos启动后,可以通过Web界面来查看集群中的资源,以及集群中正在运行的框架和任务。具体的访问方式是通过浏览器访问master结点的8080接口,即http://master:8080/。如果mesos启动正常,可以在该web界面上看到整个集群的资源总和和每一个slave结点的资源。如果有框架正在运行,还可以看到框架的信息,以及正在执行的任务信息。


Tag标签: 集群资源   管理软件   Mesos  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规