配置单台Mesos-master与Mesos-slave
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置单台Mesos-master与Mesos-slave相关的知识,希望对你有一定的参考价值。
Apache Mesos是一个集群管理器,可跨分布式应用程序或框架提供有效的资源隔离和共享。它位于应用程序层和操作系统之间,可以更加轻松地在大规模集群环境中更有效地部署和管理应用程序。它可以在动态共享节点池上运行许多应用程序。Apache Mesos将CPU,内存,存储和其他计算资源从机器(物理或虚拟)中抽象出来,使容错和弹性分布式系统能够轻松构建并有效运行。
Apache Mwsos的特点是需要独立部署mesos-slave进程,依赖framework的功能,可以管理docker容器,但是成本相对较高,主要优势是稳定性具有保障。
Apache Mesos工作原理
Apache Mesos采用了Master/Slave结构来简化设计,将master做的尽可能轻量级,仅保存了各种计算机框架(framework)和mesos slave的状态信息,这些状态很容易在mesos出现故障时被重构。除此之外mesos还可以使用zookeeper解决master单点故障问题。
Mesos Master充当全局资源调度器角色,采用某种算法策略将某个slave上的空闲资源分配给某个framework,而各种framework则是通过自己的调度器项master注册进行连接。mesos slave则是收集任务状态和启动各个framework的executor,工作原理如下图
基本术语解释
- Mesos master:负责管理各个Framework和Slave,并将Slave上的资源非配给各个Framework
- Mesos slave :负责管理本节点上的各个Mesos Task,为各个Executor分配资源
- Framework :计算框架,如Hadoop、Spark等,可以通过MesosSchedulerDiver接入Mesos
- Executor:执行器,在Mesos Slave上安装,用于启动计算框架中的Task。
Mesos功能
- 使用ZooKeeper的容错复制主服务器
- 可扩展到数千个节点
- 使用Linux容器隔离任务
- 多资源调度(内存和CPU感知)
- 用于开发新并行应用程序的Java,Python和C ++ API
- 用于查看群集状态的Web UI
环境准备
- 操作系统:CentOS-7-x86_64
- 内核版本:3.10.0-693.el7.x86_64
- 关闭虚拟机防火墙
setenforce 0 systemctl stop firewalld.service
- 虚拟机分配:
主机名 | IP地址 | 安装软件 |
---|---|---|
master | 172.16.10.23 | jdk-8u144-linux-x64.tar.gz、mesos-0.25.0.tar.gz |
slave | 172.16.10.43 | jdk-8u144-linux-x64.tar.gz、mesos-0.25.0.tar.gz |
安装Apache Mesos
配置Java环境
解压、归档软件包
tar zxf jdk-8u144-linux-x64.tar.gz
mv jdk1.8.0_144 /usr/local/java
配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
source /etc/profile //刷新使环境变量生效
安装相关环境
安装开发工具
yum -y groupinstall "Development Tools"
添加apache-maven源
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
安装依赖包
yum -y install apache-maven -- python-devel -- zlib-devel -- libcurl-devel -- openssl-devel -- cyrus-sasl-devel -- cyrus-sasl-md5 -- apr-devel -- apr-util-devel -- subversion-devel -- cyrus-sasl
配置WANdiscoSVN网络源
vim /etc/yum.repo.d/wandisco-svn.repo
[WANdiscoSVN]
name=WANdisco SVN Repo 1.9
enabled=1
baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
配置Mesos环境变量
vim /etc/profile
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so
source /etc/profile //刷新使环境变量立即生效
构建mesos
tar zxvf mesos-0.25.0.tar.gz -C /root //解压软件包
cd /root/mesos-0.25.0
mkdir build //构建配置
cd build
../configure
make //编译
make check //运行测试集
make install //安装
因为在安装apache mesos时耗时一个多小时,在配置群集时都需要安装此软件,所以建议采用克隆的方式减少用时。
配置单台Mesos-master与Mesos-slave
配置Mesos-master
Mesos-master负责维护slave集群的心跳,从slave提取资源信息。本地实验没有做dns解析,所以在这里修改hosts文件。
hostnamectl set-hostname master //设置完成之后需重启,使修改生效
vim /etc/hosts
172.16.10.23 master
172.16.10.43 slave
ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master
简配启动Mesos-master
mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0
参数释义:
- --work_dir:运行期数据存放路径
- --log_dir:Mesos日志存放路径
- --[no-]hostname_lookup:是否从DNS获取主机名,本次关闭次配置,直接显示IP
- --ip:Mesos进程绑定的IP
浏览器访问管理页面
http://192.168.175.145:5050/
配置Mesos-slave
Mesos-slave负责接收并执行来自动Mesos-master传递的任务以及监控任务状态,收集任务使用系统的情况,配置之前仍修改主机名和hosts文件
hostnamectl set-hostname slave
vim /etc/hosts
172.16.10.23 master
172.16.10.43 slave
ln -sf /root/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave
在Mesos-slave安装并启动docker容器
yum install docker -y
systemctl start docker.service
systemctl enable docker.service
简配启动Mesos-slave
mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --master=172.16.10.23:5050 --no-hostname_lookup --ip=0.0.0.0
再次访问网页
再次对master的5050端口进行验证,查看slave的状态
以上是关于配置单台Mesos-master与Mesos-slave的主要内容,如果未能解决你的问题,请参考以下文章
在CentOS7上配置Marathon+Mesos+Docker实战