在CentOS7上部署Apache Mesos

概述

Apache Mesos是一款基于多资源(内存、磁盘、CPU、端口等)调度的开源集群管理套件,能使容错和分布式系统更加容易。

工作原理

Apache Mesos采用了Master/Slave结构来简化设计,将Master做得尽可能轻量级,仅保存了各种计算框架(Framework)和Mesos Slave的状态信息,这些状态很容易在Mesos出现故障的时候被重构,除此之外Mesos还可以使用Zookeeper解决Master单点故障问题。

Mesos Master充当全局资源调度器角色,采用某种策略算法将某个Slave上的 空闲资源分配给某个Framework,而各种Framework则是通过自己的调度器向Master注册进行接入。Mesos Master则是收集任务状态和启动各个Framework的Executor。工作原理如图所示:

Apache Mesos基本术语

  • Mesos master:负责管理各个Framework和Slave,并将Slave上的资源分配给各个Framework。
  • Mesos Slave:负责管理本节点上的各个Mesos Task,为各个Executor分配资源。
  • Framework:计算框架,如:Hadoop、Spark等,可以通过MesosSchedulerDiver接入。
  • Executor:执行器,在Master Slave上安装,用于启动计算框架中的Task。

实验要求

1.必须使用CentOS7系统,需要内核为3.10及以上

2.虚拟机内存必须是2GB及以上

实验环境表

主机名 IP地址 安装软件包
master 192.168.126.156 mesos-0.25.0.tar.gz;jdk-8u91-linux-x64.tar.gz
slave 192.168.126.160 mesos-0.25.0.tar.gz;jdk-8u91-linux-x64.tar.gz; docker

安装步骤

1.配置Java环境

[[email protected] ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/  #解包
[[email protected] ~]# cd /usr/local/
[[email protected] ~]# mv jdk1.8.0_91/ java   #重命名
[[email protected] ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
[[email protected] ~]# source /etc/profile

2.安装相关环境

1)安装开发工具

[[email protected] ~]# yum groupinstall -y "Development Tools"

2)添加apache-maven源,为Mesos提供项目管理和构建自动化工具的支持。

[[email protected] ~]# wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

3)安装相关依赖包

[[email protected] ~]# yum install -y apache-maven python-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel apr-util-devel subversion-devel

4)配置WANdiscoSVN网络源

[[email protected] ~]# vim /etc/yum.repos.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

3.配置Mesos环境变量

[[email protected] ~]# vim /etc/profile
在行尾添加以下内容
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so
[[email protected] ~]# source /etc/profile

4.构建Mesos

这里使用源编码方式编译安装Mesos

[[email protected] ~]# wget http://www.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz
[[email protected] ~]# tar zxvf mesos-0.25.0.tar.gz -C /opt/
[[email protected] ~]# cd /opt/mesos-0.25.0/
[[email protected] ~]# mkdir build
[[email protected] ~]# cd build/
[[email protected] ~]# ../configure
[[email protected] ~]# make   #等待时间较长(网络在线状态)
[[email protected] ~]# make install 

安装Mesos时间较长,故实验环境安装一台Mesos后其余克隆即可。

配置单台Mesos-Master与Mesos-Slave

1.配置Mesos-master

1)Mesos-master负责维护slave集群的心跳,从slave提取资源信息。配置之前应先做好相应的解析工作。

[[email protected] ~]# hostnamectl set-hostname master  #更改主机名称为master
[[email protected] ~]# init 6   #重启虚拟机
[[email protected] ~]# vim /etc/hosts
192.168.126.156  master
192.168.126.160 slave

[[email protected] ~]# ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master  #建立软链接

2)简配启动Mesos-master

[[email protected] ~]# mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0 

减配参数:
--work_dir :运行期数据存放路径,包含了sandbox、slave、meta等信息,建议修改。

--log_dir  :Mesos日志存放路径,建议修改。

--no-hostname_lookup :是否从DNS获取主机名,本例中关闭了此配置,直接显示IP。

--ip :Mesos进程绑定的IP。

3)配置完成后可以使用浏览器访问本地的5050端口进行验证,如图1所示:

2.配置Mesos-Slave

1)Mesos-Slave负责接收并执行来自Mesos-master传递的任务以及监控任务状态,收集任务使用系统的情况,配置之前也应先做好相应的解析工作。

[[email protected] ~]# hostnamectl set-hostname slave  #更改主机名称为master
[[email protected] ~]# init 6   #重启虚拟机
[[email protected] ~]# vim /etc/hosts
192.168.126.156  master
192.168.126.160 slave

[[email protected] ~]# ln -sf /root/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave   #建立软链接

2)在Mesos-Slave端安装并启动Docker容器

[[email protected] ~]# yum install docker -y
[[email protected] ~]# systemctl start docker.service
[[email protected] ~]# systemctl enable docker.service

3)简配启动Mesos-Slave

[[email protected] ~]# mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --master=192.168.126.156:5050 --no-hostname_lookup --ip=0.0.0.0

4)关闭Mesos-master防火墙后使用浏览器再次对Master的5050端口进行验证,在Mesos Web页面左侧可以看到Slave的状态,如图1.1所示:

5)点击菜单栏中的Slaves链接,可以查看到Slave主机的硬件信息与注册时间,如图1.2所示:

3.单台Mesos-master配置ZooKeeper

ZooKeeper是 一个开源的分布式应用程序协调服务,可以为分布式应用提供一致性服务软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目的就是将复杂易出错的关键服务进行封装,提供给用户性能高效、功能稳定、简单易用的系统。

1)下载ZooKeeper后,只需要将配置文件模板进行改名即可使用。

[[email protected] ~]# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
[[email protected] ~]# tar zxvf zookeeper-3.4.6.tar.gz -C /home/q/
[[email protected] ~]# cd /home/q/zookeeper-3.4.6/
[[email protected] zookeeper-3.4.6]# mv conf/zoo_sample.cfg conf/zoo.cfg

2)启动ZooKeeper服务

[[email protected]master zookeeper-3.4.6]# ./bin/zkServer.sh start conf/zoo.cfg
JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED

3)单机模式的ZooKeeper处于standalone状态

[[email protected] zookeeper-3.4.6]# ./bin/zkServer.sh status conf/zoo.cfg
JMX enabled by default
Using config: conf/zoo.cfg
Mode: standalone

4)在ZooKeeper服务启动以后,就可以使用ZooKeeper的客户端来连接测试。

[[email protected] zookeeper-3.4.6]# ./bin/zkCli.sh
Connecting to localhost:2181
2018-08-15 22:16:03,625 [myid:] - INFO  [main:[email protected]] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2018-08-15 22:16:03,631 [myid:] - INFO  [main:[email protected]] - Client environment:host.name=master
.....//省略

[zk: localhost:2181(CONNECTED) 1] ls /     #查看根节点
[zookeeper]

4.后台运行Mesos-master与Mesos-slave

ZooKeeper简称为zk,在整个Apache Mesos中,主要用来存储Mesos-master地址,方便Mesos-slave读取。当Mesos-slave从zk中获取地址后,可直接使用Mesos-master地址以及端口连接Mesos-master。

1)nohup命令可以忽略所有挂断(SIGHUP)信号,作为后台程序运行Mesos-master与Mesos-slave。

[[email protected] ~]# nohup mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.168.126.163:2181/mesos --quorum=1 &>/dev/null &
[1] 3272
配置参数:
--zk :ZooKeeper地址,用于Leader选举。指定zk端口号

--zk_session_timeout :根据网络环境调整zk session超时时间(默认10s)。

--quorum :Master replica logs多写数量,多Master场景下此值要超过Master数量的一半。

--credential :提供密钥对,介入集群时用于验证。

2)此时,Mesos-slave使用zk地址和端口号连接Mesos-master。

[[email protected] ~]# nohup mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs--master=zk://192.168.126.163:2181/mesos --no-hostname_lookup --ip=0.0.0.0 &>/dev/null &
[1] 3996

3)使用浏览器进行验证,如图1.3所示:

原文地址:http://blog.51cto.com/13642258/2161093

时间: 2024-11-05 13:40:18

在CentOS7上部署Apache Mesos的相关文章

CentOS7部署Apache Mesos

CentOS7部署Apache Mesos Apache Mesos是由加州大学伯克利分校的AMPLab首先开发的一款开源群集管理软件,支持Hadoop.ElasticSearch.Spark.Storm 和Kafka等应用架构.Mesos使用了与Linux内核相似的规则来构造,仅仅是不同抽象层级的差别.Mesos从设备(物理机或虚拟机)抽取 CPU,内存,存储和其他计算资源,让容错和弹性分布式系统更容易使用.Mesos内核运行在每个机器上,在整个数据中心和云环境内向应用程序(Hadoop.Sp

在 CentOS7 上部署 MySQL 主从

在 CentOS7 上部署 MySQL 主从 1 通过 SecureCRT 连接至 MySQL 主服务器: 2 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般情况 my.cnf 都会位于 /etc/ 目录下: 3 用 vim 打开 MySQL 的配置文件 my.cnf: vim /etc/my.cnf 4 找到 [mysqld] 并在其后添加如下配置: # 唯一标识此 MySQL 服务器,默认值为 1,一般采用所属 IP 的末端值 server-

在Centos7上部署CloudStack4.10(文章测试)

在Centos7上部署CloudStack4.10 目录 在Centos7上部署CloudStack4.10    1 一.    概述以及环境介绍    3 二.    安装操作系统,以及初始网络配置    4 三.    开始部署    6 1 网络配置    6 2 主机名修改    6 3 SELinux    6 4 yum源配置    7 5 NTP服务    7 6 存储服务器NFS    8 7 安装mysql    8 8安装cloudstack-management    9

centos7上部署dubbo管理控制台dubbo-admin

centos7上部署dubbo管理控制台dubbo-admin 1 准备工作 服务器:系统centos7, 内存4G, 存储60G, ip 192.168.159.128 软件环境: 安装有jdk1.8, 具体安装方式参见<centos7上安装jdk1.8>博文: 安装并启动zookeeper,具体安装步骤参见<centos7上安装zookeeper>博文: 软件准备: 上传tomcat.dubbo-admin.war文件至服务器 /opt/soft目录下(其中tomcat采用版本

Docker实践(6)—CentOS7上部署Kubernetes

Kubernetes架构 Kubernetes的整体架构如下: Master为主控节点,上面运行apiserver,scheduler,controller-manager等组件.Minion相当于工作节点,上面运行kubelet,proxy,cAdvisor以及最重要的docker等组件.下面来实际部署一下这套集群管理工具. 环境 yy1  10.193.6.35 yy2  10.193.6.36 yy1作为master,yy2作为minion. # cat /etc/centos-relea

centOS7上部署安装coreseek及遇到的问题处理

# uname -r 3.10.0-229.4.2.el7.x86_64 安装步骤如下: 1 依赖包的安装 yum install gcc gcc-c++ libtool mysql-devel libxml2-devel expat-devel 2.下载软件包 wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz wget http://www.coreseek.cn/uploads/csft/4.0/cores

在 CentOS7 上部署 zookeeper 服务

1 用 SecureCRT 或 XShell 等 Linux 客户端工具连接至 CentOS7 服务器: 2 进入到 /usr/local/tools 目录中: cd /usr/local/ 如没有此目录则创建: mkdir -p tools 3 下载 zookeeper-3.4.8.tar.gz: wget http://apache.fayea.com/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz 4 返回到上一级目录并创建 zookeep

CentOS7上部署LVS负载均衡群集之LVS-NAT(地址转换模式)

CentOS7中的LVS负载均衡群集之LVS-NAT(地址转换模式) 简介 在当今各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等的要求越来越高,单台服务器将难以承担所有的访问.除了使用价格昂贵的大型机.专用负载分流设备以外,企业还有另外一种选择来解决难题,就是构建集群服务器--通过整合多台相对廉价的普通服务器,以同一个地址对外提供相同的服务. 负载均衡群集:以提高应用系统的响应能力.尽可能处理更多的访问请求.减少延迟为目标,获得高并发.高负载的整体性能. 实验介绍 环境

CentOS7上部署KVM虚拟化平台

什么是虚拟化 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化的优势 1:减少服务器的数量,降低硬件采购成本.2:资源利用率最大化3:降低机房空间.散热.用电消耗成本.4:硬件资源可动态调整,提高企业IT业务灵活性.5:高可用性6:在不中断服务的情况下进行物理硬件调整.7:降低管理成本.8:具备更高效的灾备能力. ? 操作步骤 在虚拟机里添加一个40G的新磁盘