CentOS7部署Apache Mesos

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以上。

[[email protected] ~]# 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。

[[email protected] ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
#将jdk包解压到指定目录中
[[email protected] ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

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

安装相关环境

  • 安装开发工具

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

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

  • 添加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

  • 安装相关依赖包
    [[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
  • 配置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
  • 配置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
  • 构建Mesos
    我们这里采用的是源码编译的方式安装,当然也可以使用yum仓库的安装方式

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

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

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

    配置单台Mesos-Apache与Mesos-slave

    配置Mesos-master

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

    [[email protected] ~]# hostnamectl set-hostname master
    #将本机的主机名改为master
    [[email protected] ~]# vim /etc/hosts
    192.168.58.152 master
    192.168.58.162 slave
    #在hosts文件中写入ip和主机名的对应关系
    [[email protected] ~]# 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通
    [[email protected] ~]# ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master
    #这是建立软链接,方便使用mesos的相关命令

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

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

    vm14克隆介绍

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





    配置Mesos-slave

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

    [[email protected] ~]# hostnamectl set-hostname slave
    #将Mesos-slave服务器主机名改为slave
    [[email protected] ~]# 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 ( 容器化 )选项之一 。

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

    配置启动mesos-slave

    [[email protected] ~]# 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。

原文地址:http://blog.51cto.com/10693404/2160468

时间: 2024-10-07 09:50:53

CentOS7部署Apache Mesos的相关文章

在CentOS7上部署Apache Mesos

概述 Apache Mesos是一款基于多资源(内存.磁盘.CPU.端口等)调度的开源集群管理套件,能使容错和分布式系统更加容易. 工作原理 Apache Mesos采用了Master/Slave结构来简化设计,将Master做得尽可能轻量级,仅保存了各种计算框架(Framework)和Mesos Slave的状态信息,这些状态很容易在Mesos出现故障的时候被重构,除此之外Mesos还可以使用Zookeeper解决Master单点故障问题. Mesos Master充当全局资源调度器角色,采用

【转】Singularity:基于Apache Mesos构建的服务部署和作业调度平台

Singularity是一个在云基础设施中部署和运行服务和计划作业的平台,同时也是HubSpot PaaS的核心组件.它能够高效地管理底层进程的生命周期,并有效地利用集群资源.它可以作为持续部署基础设施的基本组成部分,而且是微服务部署的理想选择.它不仅能够管理数以百计的服务器上运行着的数以千计的进程,而且还提供了如下开箱即用的特性: 丰富的REST API,既有用于部署的,也有用于获取活动部署和历史部署信息的: Web应用客户端(Singularity UI)使用上述API向用户提供所有可获得信

Apple使用Apache Mesos重建Siri后端服务

苹果公司宣布,将使用开源的集群管理软件Apache Mesos,作为该公司广受欢迎的.基于iOS的智能个人助理软件Siri的后端服务.Mesosphere的博客指出,苹果已经创建了一个命名为J.A.R.V.I.S.,类似PaaS的专有调度Framework,由此,开发者可以部署可伸缩和高可用的的Siri服务. 集群管理软件Apache Mesos将CPU.内存.存储介质以及其它计算机资源从物理机或者虚拟机中抽象出来,构建支持容错和弹性的分布式系统,并提供高效的运行能力.Mesos使用与Linux

CentOS 6.3下CHEF批量部署APACHE

之前的博文我介绍了如何搭建CHEF环境以及创建编写cookbook,resipes用来批量将cookbook下发到客户端执行相应的部署操作. NOW,本篇文档我们会详细介绍如何利用CHEF独有的框架语言来批量部署安装APACHE,并加载其HTTPS模块等功能. 相信如果你看了本篇文档,利用CHEF实现一个批量自动化部署将不是什么难事. CHEF环境部署详见: http://showerlee.blog.51cto.com/2047005/1408467 操作系统:CentOS-6.3-x86-6

生产环境中CentOS7部署NET Core应用程序

NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. 部署ASP.NET Core应用程序 配置Nginx 配置守护服务(Supervisor) 这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方案,今天

Centos7下Apache详细安装配置及证书申请SSL配置介绍

首先说到Centos大家都已经非常熟悉了,所以我们也就不多介绍关于Centos具体发展了,我们首先知道在Centos7之前版本命令和ReadHat的命令完全一样的,可Centos从6.0版本升级到Centos7版本之后,命令及功能上有了很大的变化,最明显的差别就是从安装的操作界面及操作命令上已经有很大变化了,更不用说功能上的变化了,比如centos6.x版本的iptalbes到centos7的firewall的变化,当然,变化了很多,我也就不多说了,今天呢,主要给大家介绍一下再Centos7下A

CentOS7安装 Apache HTTP 服务器

CentOS7安装 Apache HTTP 服务器 时间:2015-05-02 00:45来源:linux.cn 作者:linux.cn 举报 点击:11457次 不管你因为什么原因使用服务器,大部分情况下你都需要一个 HTTP 服务器运行网站.多媒体.用户端脚本和很多其它的东西. # yum install httpd 安装 Apache 服务器 如果你想更改 Apache HTTP 服务器的默认端口号(80)为其它端口,你需要编辑配置文件 ‘/etc/httpd/conf/httpd.con

Force12.io为Apache Mesos创建“微伸缩”框架

Force12.io日前发布了一款运行在Apache Mesos集群管理器之上的微伸缩容器原型示例.他们声称,在不同负载的情况下给定模拟的需求,启动和停止「优先级1」和「优先级2」的容器要比原来的autoscaling方法更加的快速. 能够有效的自动扩展计算机资源是一件非常有挑战的事情,尤其是各家企业都具有不同的使用需求和负载类型.举例来说,Netflix曾经讨论过如何在使用传统的autoscaling方法之外另辟蹊径,Netflix创建了一名为Scryer的项目,此项目利用机器学习技术来假设.

下一代云计算平台Apache Mesos定制自己的PaaS(应用发布+负载均衡+服务发现)

书接上文<下一代云计算平台Apache Mesos之使用marathon发布应用> 作为一个简单的PaaS(平台即服务),应该具备发布应用,调整应用个数,重启应用,暂停应用(marathon提供)以及负载均衡和服务发现的功能.本文主要演示负载均衡和服务发现. 1 发布docker程序到marathon 1.1 发布docker镜像到marathon平台 1.1.1 编写Docker.json { "container": { "type": "