博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建 Marathon+Mesos+Docker 架构
阅读量:7015 次
发布时间:2019-06-28

本文共 5832 字,大约阅读时间需要 19 分钟。

Mesos

Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。(分布式系统管理调度和资源分配机制)

Mesos 缺点 :

需要独立部署mesos-slave 进程;依赖 framework 的功能;成本比较高;

Mesos 优点 :

可以管理 docker 容器;稳定性具有保障;

Mesos 结构大概图

搭建 Marathon+Mesos+Docker 架构

组成 :

  • framework:计算机框架

  • executor:执行器task任务

  • mesos-master:管理slave 调度分配资源

  • mesos-slave:执行task

本案环境

主机名 系统 IP地址 软件包
master CentOS 7.4 192.168.100.136 jdk、mesos、zookeeper、marathon
master1 CentOS 7.4 192.168.100.129 jdk、mesos、zookeeper
master2 CentOS 7.4 192.168.100.138 jdk、mesos、zookeeper
slave CentOS 7.4 192.168.100.139 jdk、mesos、docker
slave1 CentOS 7.4 192.168.100.140 jdk、mesos、docker

安装 Mesos (所有主机搭建)

1.配置 java 环境 :

systemctl stop firewalld.servicesetenforce 0uname -r    #查看内核版本(需要内核3.10以上)
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/   cd /usr/local/mv jdk1.8.0_91/ java   #重命名
vim /etc/profile    export JAVA_HOME=/usr/local/java   export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jarsource /etc/profile   #刷新

2.安装环境 :

yum groupinstall -y "Development Tools"   #安装开发工具
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo#添加apache-maven源
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#安装依赖包
vim /etc/yum.repos.d/wandisco-svn.repo   #配置WANdiscoSVN网络源[WANdiscoSVN]name=WANdisco SVN Repo 1.9enabled=1baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/gpgcheck=1gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco

3.配置Mesos环境变量 :

vim /etc/profileexport MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.soexport MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.sosource /etc/profile

3.安装 mesos :

wget http://archive.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz  #下载mesos包
tar zxvf mesos-0.25.0.tar.gz -C /opt/mv mesos-0.25.0/ /root/cd /root/mesos-0.25.0mkdir buildcd build../configuremake               #等待时间长make check         #检查make install

配置 Mesos-master

1.修改主机名 :

hostnamectl set-hostname master   #所有master依次修改bash   #立即生效

2.配置解析(所有主机添加) :

vim /etc/hosts192.168.100.136 master192.168.100.129 master1192.168.100.138 master2192.168.100.139 slave192.168.100.140 slave1

3.启动 mesos :

ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-mastermesos-master  #启动

4.配置 master-zookeeper :

tar zxvf zookeeper-3.4.10.tar.gz -C /home/cd /home/zookeeper-3.4.10/mv conf/zoo_sample.cfg conf/zoo.cfg   #配置文件模板重命名,不能同时存在

5.编辑 zookeeper 配置文件 :

vim /home/zookeeper-3.4.10/conf/zoo.cfgdataDir=/home/zookeeper-3.4.10/data         #重新定义 datadir 位置dataLogDir=/home/zookeeper-3.4.10/datalog   #data、datalog 不存在创建server.1=192.168.100.136:2888:3888          #三台master服务器地址server.2=192.168.100.129:2888:3888server.3=192.168.100.138:2888:3888格式 :server.A=B:C:DA:表示第几号服务器B:服务器IP地址C: 群集中 leader 服务器交换信息端口D:在 leader 选举时所用的端口
scp /home/zookeeper-3.4.10/conf/zoo.cfg 192.168.100.138:/home/zookeeper-3.4.10/conf/#把配置文件服务复制过去,前提所有master配置文件已修改scp /home/zookeeper-3.4.10/conf/zoo.cfg 192.168.100.139:/home/zookeeper-3.4.10/conf/
[root@master ~]# cd /home/zookeeper-3.4.10/[root@master zookeeper-3.4.10]# mkdir data[root@master zookeeper-3.4.10]# mkdir datalog[root@master zookeeper-3.4.10]# echo 1 > data/myid   #添加相对应的第几号服务器  依次添加 要和配置文件相对应[root@master zookeeper-3.4.10]# cat data/myid 1

6.启动服务 :

[root@master zookeeper-3.4.10]# ./bin/zkServer.sh start conf/zoo.cfg   #开启服务ZooKeeper JMX enabled by defaultUsing config: conf/zoo.cfgStarting zookeeper ... STARTED

7.查看状态 :

[root@master zookeeper-3.4.10]#  ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfgMode: follower  #负责接收客户请求,向客户端返回结果,并在选举过程中参与投票[root@master1 zookeeper-3.4.10]#  ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfgMode: follower[root@master2 zookeeper-3.4.10]#  ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /home/q/zookeeper-3.4.10/bin/../conf/zoo.cfgMode: leader   #负责投票发起和决议、更新系统状态。

8.分别开启 mesos-master (和mesos-slave 一起启动) :

[root@master zookeeper-3.4.10]#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.100.136:2181/mesos --quorum=2#--quorum=2  还剩余2台服务器[root@master1 zookeeper-3.4.10]#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.100.129:2181/mesos --quorum=2  [root@master2 zookeeper-3.4.10]#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.100.138:2181/mesos --quorum=2

配置 Mesos-slave

1.修改主机名 :

hostnamectl set-hostname slave   #所有 slave 依次修改bash   #立即生效

2.配置解析(所有主机添加) :

vim /etc/hosts192.168.100.136 master192.168.100.129 master1192.168.100.138 master2192.168.100.139 slave192.168.100.140 slave1

3.建立软连接 :

ln -sf /opt/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave

4.安装 docker :

yum install docker -ysystemctl start docker.servicesystemctl enable docker.service

5.启动 mesos-slave :

mesos-slave --containerizers="mesos,docker" \--work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs \--master=zk://192.168.100.136:2181,192.168.100.129:2181,192.168.100.138:2181/mesos \--no-hostname_lookup --ip=0.0.0.0

测试访问 mesos-master

随意访问一台 master ,若指定非 leader 状态的 mesos-master 地址,页面会自动跳转 leader 状态下的地址 :

搭建 Marathon+Mesos+Docker 架构

搭建 Marathon+Mesos+Docker 架构

部署 Marathon

1.安装服务(只需要在一台 master 部署) :

http://downloads.mesosphere.com/marathon/v0.15.2/marathon-0.15.2.tgztar zxvf marathon-0.15.2.tgz -C /home/

2.将 Marathon 安装到多 mesos-master 环境的 master 主机上 :

cd /home/marathon-0.15.2[root@master marathon-0.15.2]#./bin/start --hostname 192.168.100.136 --master zk://192.168.100.136:2181,192.168.100.129:2181,192.168.100.138:2181/mesos --http_address 0.0.0.0

测试访问 marathon

搭建 Marathon+Mesos+Docker 架构

转载于:https://blog.51cto.com/13640803/2161043

你可能感兴趣的文章
我的友情链接
查看>>
KaliLinux常用服务配置教程DHCP服务工作流程
查看>>
js基础--javascript基础概念之数组
查看>>
date 输出格式
查看>>
Android控件TextView的实现原理分析
查看>>
java中异常的处理
查看>>
我的友情链接
查看>>
最小生成树算法——Prim和Kruskal算法的实现
查看>>
java循环中如何删除集合中的元素
查看>>
JFinal 2.2 国际化功能的应用
查看>>
Kafka性能调优
查看>>
python在webservice接口测试中的应用
查看>>
mysql数据库的基本操作
查看>>
nginx 编译安装实践
查看>>
IE打开某些网站出现文件下载对话框的故障
查看>>
将字符串中的汉字去掉只保留数字
查看>>
azkaban提交job出错记录
查看>>
CentOS6.6系统安装
查看>>
scikit-feature: Open-Source Feature Selection Repo
查看>>
Linux执行定期任务-Cron和CronTab
查看>>