centos7配置zookeeper+mesos+marathon+docker

来源:互联网 发布:阿里云ip 编辑:程序博客网 时间:2024/06/11 15:21

本文主要介绍mesos相关集群的安装和配置过程,主要在centos7中采用yum安装的方法,帮助快速搭建可用的mesos集群服务,可以借助marathon等工具,进行docker的管理。本文主要讲述该集群的安装和配置过程,并不涉及该集群的使用方法演示。
下面,我们开始安装过程,首先,我们有三台机器,IP分别为192.168.20.15,192.168.20.16,192.168.20.17,并目标安装以下组件,
- zookeeper
- mesos
- docker
- marathon
- chronos

部署过程

环境

软件 版本 操作系统 centos 3.10.0-514.el7.x86_64 zookeeper mesosphere-zookeeper-3.4.6

配置主机名及IP对应关系

  1. 在每台机器上,修改/etc/hostname,分别将其内容更改为host-1,host-2,host-3
  2. 修改每台机器上的/etc/hosts文件,在每个hosts文件中都添加上主机与ip的对应关系,即(注意需要与hostname相互呼应)
192.168.20.17 host-2192.168.20.15 host-3192.168.20.16 host-1

主机名更改后,需要重启机器,使其生效

安装并配置zookeeper

  • 添加库
    rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
  • 通过yum为每台机器安装zookeeper,
    sudo yum install mesosphere-zookeeper
  • 编辑每台机器上的配置文件/etc/zookeeper/conf/zoo.cfg,在末尾添加
    server.1=host-1:2088:3088
    server.2=host-2:2088:3088
    server.3=host-3:2088:3088

    在此处中,server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口。
  • 为每个节点设置不同的myid值,在/var/lib/zookeeper/myid中写入一个1到255范围的数值,需要注意的是,不能重复,并与上面的配置对应。可以参考如下命令
    echo '2' | sudo tee /var/lib/zookeeper/myid
  • 开启服务并判断是否成功
    打开服务
    systemctl start zookeeper
    查看状态
    systemctl status zookeeper
    尝试连接
    cd /opt/mesosphere/zookeeper/bin/
    ./zkCli.sh -server 127.0.0.1

    注意,同样,我们需要用这个方法,要测试一下另外的两台机器,已保证均可正常连接。可以用quit命令退出连接
    测试连接本地机器
    如果不能互连,请确实是否是防火墙的原因,可以现将防火墙进行管理,并测试
    关闭防火墙
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    另外,可以通过
    /opt/mesosphere/zookeeper/bin/zkServer.sh status /etc/zookeeper/conf/zoo.cfg查看每台机器中的zookeeper的角色,例如,其中一个为leader
    这里写图片描述
    另外两个为follower
    这里写图片描述

安装mesos

首先,我们需要大致了解一下mesos中的各个角色和作用,其中
1. Mesos-master:主要负责管理各个framework和slave,并将slave上的资源分配给各个framework
2. Mesos-slave:负责管理本节点上的各个mesos-task,比如:为各个executor分配资源
3. Framework:计算框架,如:Hadoop,Spark等,通过MesosSchedulerDiver接入Mesos,在本文中,例如marathon就是一种计算框架。
4. Executor:执行器,安装到mesos-slave上,用于启动计算框架中的task。
当用户试图添加一种新的计算框架到Mesos中时,需要实现一个Framework scheduler和executor以接入Mesos。

安装过程如下:

  • 在每台机器上,安装mesos,
    yum -y install mesos
    需要注意的是,在该教程中,我们将三台机器均作为master节点,同时,又作为slave节点。
  • 编辑配置文件
    • vim /etc/mesos/zk,在每个节点中,均改为
      zk://host-1:2181,host-2:2181,host-3:2181/mesos
      注意,2181与zookeeper的运行服务端口是一致的
    • /etc/mesos-master/quorum中的数字修改为2,这里的2表示至少要有 2 台 master 节点在线,否则集群无法起来,所以至少要两台 master 一起启动。
      echo '2' | tee /etc/mesos-master/quorum
    • 更改work_dir配置项
      例如,修改/etc/mesos-slave/etc/mesos-master中的work_dir 中。
mkdir -p  /home/mesos_work_direcho '/home/mesos_work_dir' | tee /etc/mesos-slave/work_direcho '/home/mesos_work_dir' | tee /etc/mesos-master/work_dir
  • 配置docker相关内容
echo 'docker,mesos' > /etc/mesos-slave/containerizersecho '5mins' > /etc/mesos-slave/executor_registration_timeout

顺便提一下,master节点的一些配置文件在`/etc/mesos-master/’目录下,而slave中的一些配置文件在‘/etc/mesos-slave’中,配置选项可以参考 《Mesos 配置项解析》 一文,每项配置,都可以写在以该配置项名称命名的文件中。

  • 启动mesos
    在每台机器上,启动mesos master服务
    systemctl start mesos-master
    启动mesos slave服务
    systemctl start mesos-slave
    查看服务状态
    systemctl status mesos-master
    systemctl status mesos-slave
  • 访问mesos管理平台
    访问例如“http://192.168.20.15:5050”,可以看到
    这里写图片描述
    如果其运行显示时存在问题,例如无法正确打开相关网页,或者反复提示问题,可以参考关于mesos搭建,webui显示不正常的原因及解决办法中。

安装docker

  • 安装docker服务
    yum -y install docker
  • 将docker服务启动为开机启动
    systemctl enable docker
  • 将指定用户添加到用户组
    建立 docker 组:
    groupadd docker
    将当前/某个用户加入 docker 组:
    usermod -aG docker $USER
    重新登录账户 并重启docker
    systemctl restart docker
  • 查看docker服务状态
    systemctl status docker

安装marathon

  • 安装
    yum -y install marathon
  • 启动并查看状态
    systemctl start marathon
    systemctl status marathon
  • 查看管理页面
    可以在mesos管理页面的frameworks中看到已经激活的marathon,并访问对应节点的8080端口(例如,http://:192.168.20.15:8080/),查看marathon管理页面,如图
    这里写图片描述

安装Chronos

  • 安装
    yum -y install chronos
  • 启动并查看状态
    systemctl start chronos
    systemctl status chronos
  • 查看管理页面
    可以在mesos管理页面的frameworks中看到已经激活的chronos,并访问对应节点的4400端口(例如,http://:192.168.20.15:4400/),查看chronos管理页面,如图
    这里写图片描述
阅读全文
0 0
原创粉丝点击