设为首页 收藏本站
查看: 1104|回复: 0

[经验分享] CentOS7部署Apache Mesos-10683404

[复制链接]

尚未签到

发表于 2018-11-17 09:40:46 | 显示全部楼层 |阅读模式
CentOS7部署Apache Mesos
  Apache Mesos是由加州大学伯克利分校的AMPLab首先开发的一款开源群集管理软件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等应用架构。Mesos使用了与Linux内核相似的规则来构造,仅仅是不同抽象层级的差别。Mesos从设备(物理机或虚拟机)抽取 CPU,内存,存储和其他计算资源,让容错和弹性分布式系统更容易使用。Mesos内核运行在每个机器上,在整个数据中心和云环境内向应用程序(Hadoop、Spark、Kafka、Elastic Serarch等等)提供资源管理和资源负载的API接口。

Apache Mesos工作原理
  Apache Mesos采用了Master/Slave结构来简化设计,将Master做得尽量轻量级,仅保存了各种计算框架(Framework)和Mesos Slave的状态信息,这些状态很容易在Mesos出现故障的时候被重构,除此之外Mesos还可以使用Zookeeper解决Master单点故障。
  Mesos Master充当全局资源调度器角色,采用某种策略算法将某个Slave上的空闲资源分配给某个Framework,而各种Framework则是通过自己的调度器向Master注册进行接入。Mesos Slave则是通过收集任务状态和启动各个Framework的Executor。工作原理图如下。

Apache Mesos配置要求
  本实验都是使用的CentOS7系统,因为Mesos配置最低要求内核为3.10以上。
  

[root@master ~]# uname -r  
3.10.0-693.el7.x86_64
  

试验环境

主机名
IP地址
master
192.168.58.152
slave
192.168.58.162
安装步骤
  当前的Mesos支持三种语言编写的调度器,分别是C++、Java、Python,可以向不同的调度器提供统一的接入方式

配置java环境
  首先从官网上下载JDK软件包,地址为https://www.oracle.com/technetwork/java/,可以选择合适的版本下载,我这里使用的jdk-8u91-linux-x64.tar.gz。
  

[root@master ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/  
#将jdk包解压到指定目录中
  
[root@master ~]# vim /etc/profile
  
export JAVA_HOME=/usr/local/jdk1.8.0_91
  
export PATH=$JAVA_HOME/bin:$PATH

  
export>  

  
[root@master ~]# source /etc/profile
  
#将java添加到环境变量中,方便识别
  

安装相关环境


  • 安装开发工具  

    [root@master ~]# yum groupinstall "Development tools" -y  

      安装完后,使用yum group list查看已经安装的工具组。
    DSC0000.jpg


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

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

    DSC0001.jpg


  • 安装相关依赖包  

    [root@master ~]# 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

  • 配置WANdiscoSVN网络源
  

[root@master ~]# 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
  


  • 配置Mesos环境变量
  

[root@master ~]# vim /etc/profile  

  
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
  
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so
  

  
[root@master ~]# source /etc/profile
  


  • 构建Mesos  我们这里采用的是源码编译的方式安装,当然也可以使用yum仓库的安装方式
      

    [root@master ~]# wget http://archive.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz  
    #首先先下载mesos软件包
      
    [root@master ~]# tar xf mesos-0.25.0
      
    #将mesos软件包解压到当前目录
      
    [root@master ~]# cd mesos-0.25.0/
      
    #进入到解压完的目录中
      
    [root@master mesos-0.25.0]# mkdir build/
      
    #创建一个build目录,具体为什么这么操作,参考http://mesos.mydoc.io/官方文档
      
    [root@master mesos-0.25.0]# cd build/
      
    [root@master build]# ../configure
      
    #进入到build目录中,注意是../configure,因为configure在上一层目录中
      
    [root@master build]# make
      
    #注意这个环节时间特别长,要有耐心
      
    [root@master build]# make check
      
    #make编译完后,进行测试,最后可能会有两个报错,不过不影响
      
    [root@master build]# make install
      
    #最后就是安装
      

      另外可能在make过程中会有下图报错,那是由于网络原因,导致部分文件无法下载,导致超时退出,将build目录下文件都删除,重新编译安装即可。
    DSC0002.jpg

      由于安装Mesos时间比较长,所以这里推荐安装一台,其他的都使用克隆,wmworkstation14的克隆十分方便,要善于利用。

    配置单台Mesos-Apache与Mesos-slave

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

    [root@master ~]# hostnamectl set-hostname master  
    #将本机的主机名改为master
      
    [root@master ~]# vim /etc/hosts
      
    192.168.58.152 master
      
    192.168.58.162 slave
      
    #在hosts文件中写入ip和主机名的对应关系
      
    [root@master ~]# ping slave
      
    PING slave (192.168.58.162) 56(84) bytes of data.
      
    64 bytes from slave (192.168.58.162): icmp_seq=1 ttl=64 time=0.262 ms
      
    ^C
      
    --- slave ping statistics ---
      
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
      
    rtt min/avg/max/mdev = 0.262/0.262/0.262/0.000 ms
      
    #可以使用主机名,直接ping通
      
    [root@master ~]# ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master
      
    #这是建立软链接,方便使用mesos的相关命令
      

      配置启动Mesos-master
      

    [root@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:运行期间数据的存放路径,包含sanbox、slave meta信息
      
    #--log——dir:日志存放路径
      
    #--no-hostname_lookup:是否从DNS获取主机名,这里是关闭这个功能,直接从本地hosts文件获取
      
    #--ip:Mesos进程绑定的IP
      

      配置完成后可以使用浏览器访问本地的5050端口进行验证,记得关闭防火墙和SELinux。
    DSC0003.jpg


    vm14克隆介绍
      vm14的克隆功能很强大,首先需要先关闭被克隆的虚拟机。
    DSC0004.jpg

    DSC0005.jpg

    DSC0006.jpg

    DSC0007.jpg

    DSC0008.jpg

    DSC0009.jpg


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

    [root@slave ~]# hostnamectl set-hostname slave  
    #将Mesos-slave服务器主机名改为slave
      
    [root@slave ~]# vim /etc/hosts
      
    192.168.58.152 master
      
    192.168.58.162 slave
      
    #和Mesos-master一样
      

      Mesos 0.20.0 开始支持通过 Docker 镜像来启动任务,同时也支持部分的 Docker 参数。当然我们计划在未来支持更多的参数。用户可以将 Docker 镜像作为一个任务启动,也可以作为一个 Executor 启动。为了运行支持 Docker 容器的 slave,在启动slave的时候,你必须将 " docker" 作为 Containerizer ( 容器化 )选项之一 。
      

    [root@slave ~]# yum install docker -y  
    #先安装docker服务
      
    [root@slave ~]# systemctl start docker.service
      
    [root@slave ~]# systemctl enable docker.service
      
    #启动docker服务已经设置为开机启动
      

      配置启动mesos-slave
      

    [root@slave ~]# mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data \  
    > --log_dir=/home/q/mesos/logs --master=192.168.58.152:5050 --no-hostname_lookup --ip=0.0.0.0
      
    #--containerizers 支持docker虚拟化的slave
      
    #--master:指定mesos-master地址及端口
      

      运行后,刷新http://192.168.58.152:5050,可以看到有一个激活的mesos-slave。
    DSC00010.jpg

    DSC00011.jpg





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636072-1-1.html 上篇帖子: Apache2.4配置woker模式以及目录属性优化 下篇帖子: apache2.4-zhangyuhe2的博客
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表