Apache Mesos是一个集群管理器,可跨分布式应用程序或框架提供有效的资源隔离和共享。它位于应用程序层和操做系统之间,能够更加轻松地在大规模集群环境中更有效地部署和管理应用程序。它能够在动态共享节点池上运行许多应用程序。Apache Mesos将CPU,内存,存储和其余计算资源从机器(物理或虚拟)中抽象出来,使容错和弹性分布式系统可以轻松构建并有效运行。
Apache Mwsos的特色是须要独立部署mesos-slave进程,依赖framework的功能,能够管理docker容器,可是成本相对较高,主要优点是稳定性具备保障。java
Apache Mesos采用了Master/Slave结构来简化设计,将master作的尽量轻量级,仅保存了各类计算机框架(framework)和mesos slave的状态信息,这些状态很容易在mesos出现故障时被重构。除此以外mesos还可使用zookeeper解决master单点故障问题。
Mesos Master充当全局资源调度器角色,采用某种算法策略将某个slave上的空闲资源分配给某个framework,而各类framework则是经过本身的调度器项master注册进行链接。mesos slave则是收集任务状态和启动各个framework的executor,工做原理以下图python
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 |
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"
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
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
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 //刷新使环境变量当即生效
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时耗时一个多小时,在配置群集时都须要安装此软件,因此建议采用克隆的方式减小用时。linux
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 --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0
参数释义:docker
http://192.168.175.145:5050/
Mesos-slave负责接收并执行来自动Mesos-master传递的任务以及监控任务状态,收集任务使用系统的状况,配置以前仍修改主机名和hosts文件apache
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
yum install docker -y systemctl start docker.service systemctl enable docker.service
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的状态vim