精华内容
下载资源
问答
  • mesos

    2019-10-02 16:22:23
    1.1 mesos(分布式资源管理器) 1) 什么是MesosMesos是一个开源的资源管理系统,可以对集群中的资源做弹性管理。 Mesos中包含四类主要的服务(实际上是一个socketserver—服务端口),它们分别是Mesos ...

    1.1           mesos(分布式资源管理器)

    1)   什么是Mesos?

    Mesos是一个开源的资源管理系统,可以对集群中的资源做弹性管理。

     

     

    Mesos中包含四类主要的服务(实际上是一个socketserver—服务端口),它们分别是Mesos Master,Mesos Slave(从服务),SchedulerProcess(调度进程)和ExecutorProcess(执行进程),它们之间通过Protocal Buffer消息进行通信,每种服务内部注册了若干种Protocal Buffer消息处理器,一旦收到某种消息,则会调用相应的消息处理器进行处理。除了以上四种服务之外,Mesos还对外提供了三种可编程组件,分别是Alloctor(分配器)、Framework Scheduler(框架调度器)和Framework Executor(框架执行器),编写这几个组件必须按照要求实现了几个接口,而这些接口将分别被下图中相邻的服务调用。

    大部分人看到以上Mesos架构后,均会认为Framework必须是一个通用的框架,比如MapReduce、Storm、Spark等,而Mesos Master负责将资源分配给各个框架,而各个框架的Scheduler进一步将资源分配给其内部的各个应用程序。这种观念是错误的,是对Mesos架构的一种错误解读。

    事实上,Framework不仅可以是通用的框架,也可以是像Hadoop的Job或者YARN的Application那样的简单计算任务,也就是说,Framework并不需要一定是一个“Framework”,或者一个长时间运行的服务(比如JobTracker等),也可以是一个短生命周期的Job或者Application。如果让Framework对应一个Hadoop Job,则可以这样设计Framework Scheduler和Framework Executor:.

    (1)Framework Scheduler功能

    Framework Scheduler负责按照作业的输入数据量,将之分解成若干任务,并为这些任务申请资源、监控这些任务的运行状态,一旦发现某个任务运行失败则重新为之申请资源。

    (2)Framework Executor功能

    为一个节点上的Map Task或者Reduce Task准备运行环境,包括准备各种jar包、二进制文件,设置必要的环境变量,进行必要的资源隔离,启动Jetty Shuffle以为Reduce Task提供远程数据拷贝服务等,接收来自Framework Scheduler的命令(启动任务、杀死任务等),并执行。

    通过上面的介绍可以知道,Framework Scheduler只负责运行一个Hadoop Job,而如果你对YARN比较熟悉,便会发现者正是YARN中的MapReduce ApplicationMaster做的事情,没错,Mesos与YARN的设计架构如此的相近,以至于我们很容易通过修改YARN 的任何一个ApplicationMaster,让它作为一个Framework Scheduler运行在Mesos中。

    最近Mesos提供了一个mesos-submit工具(https://github.com/apache/mesos/blob/trunk/docs/Using-the-mesos-submit-tool.md,注意,该工具尚不完善),该工具可以让用户的Framework Scheduler运行在任何一个Mesos Slave上,以防止客户端运行过多的Framework Scheduler,这样,Mesos的整个架构和工作流程已经变得与YARN相差无几了。

    Mesos与yarn区别:

    Mesos中的组件

    YARN中的组件

    功能

    Mesos Master

    Resource Manager

    整个集群的资源管理和调度

    Mesos Slave

    Node Manager

    单个节点的资源管理(资源隔离、汇报等)、任务启动等

    Framework Executor

    Framework Scheduler

    ApplicationMaster

    单个应用程序的管理和资源二次调度,基本操作均包括注册、资源申请/获取、资源分配(给内部的任务)等。

    2)     Mesos的任务分配过程分析:

     

     

    1. 步骤1 当出现以下几种事件中的一种时,会触发资源分配行为:新框架注册、框架注销、增加节点、出现空闲资源等;
    2. 步骤2 Mesos Master中的Allocator模块为某个框架分配资源,并将资源封装到ResourceOffersMessage(Protocal Buffer Message)中,通过网络传输给SchedulerProcess;
    3. 步骤3 SchedulerProcess调用用户编写的Scheduler中的resourceOffers函数(不能版本可能有变动),告之有新资源可用;
    4. 步骤4 用户的Scheduler调用MesosSchedulerDriver中的launchTasks()函数,告之将要启动的任务;
    5. 步骤5 SchedulerProcess将待启动的任务封装到LaunchTasksMessage(Protocal Buffer Message)中,通过网络传输给Mesos Master;
    6. 步骤6 Mesos Master将待启动的任务封装成RunTaskMessage发送给各个Mesos Slave;
    7. 步骤7 Mesos Slave收到RunTaskMessage消息后,将之进一步发送给对应的ExecutorProcess;
    8. 步骤8 ExecutorProcess收到消息后,进行资源本地化,并准备任务运行环境,最终调用用户编写的Executor中的launchTask启动任务(如果Executor尚未启动,则先要启动Executor)。
    3)   在一个Mesos Slave上,一个任务启动过程如下图所示:

     

     

    4)   Hadoop框架中framework与executor向mesos注册过程。

    Framework注册过程

     

     

    (1) JobTracker启动时,会调用MesosScheduler的start()方法

    (2) MesosScheduler的start()方法创建一个MesosSchedulerDriver对象,并将自己作为参数传入该对象。

    (3) MesosSchedulerDriver初始化,创建一个SchedulerProcess对象

    (4) MesosSchedulerDriver初始化,调用MasterDetector::create(),它将向SchedulerProcess对象发送一个NewMasterDetectedMessage消息

    (5) SchedulerProcess对象收到NewMasterDetectedMessage消息后,向Master发送一个RegisterFrameworkMessage消息

    (6) Master收到该消息后,保存相关信息,并返回FrameworkRegistedMessage消息,确认framework注册成功

     

     

    Executor注册过程

    本节描述框架frameworkX在某个slaveX上注册executor executorX的过程:

    (1)Master第一次向slaveX发送执行frameworkX中task的消息 RunTaskMessage

    (2)slave收到该消息后,运行相应的消息处理函数runTask()

    (3)该函数发现该slave上未启动frameworkX对应的executorX,则调用IsolationModule的lauchExecutor()函数

    (4)该函数创建一个FrameworkExecutor对象,并调用ExecutorProcess的Initialize()函数进行初始化,同时启动TaskTracker

    (5)Initialize()函数创建消息RegisterExecutorMessage,并发送给slave

    (6)Slave收到该消息后,调用对象的消息处理函数registerExecutor,该函数创建ExecutorRegisteredMessage消息,返回给ExecutorProcess

    (7)ExecutorProcess收到该消息后,调用对应的消息处理函数registered(),该函数再进一步调用FrameworkExecutor的registered()函数

     

     

    接下来,master发送给slave的RunTaskMessage消息依次经过的流程如下图所示。

     

     

    需要注意的是,对于同一个计算框架,Mesos在一个slave上只会创建一个资源container,所有task全部在这个container里运行,也就是说,mesos无法做到task级别的隔离,只能做到executor级别的隔离,而对于同一个框架,同一个slave上所有task全部在一个executor中运行。

    对于Hadoop而言,每个mesos-slave上只会创建一个TaskTracker,且该TaskTracker会被放置到一个executor(对应一个linux container)中运行,而同一个TaskTracker上所有task均在该TaskTracker所在进程树中,因而共享该executor对应的资源。当TaskTracker接收到新的task时,会增加该executor可以使用的资源量(使用“lxc-cgroup –n %s %s %lld”),而当有task运行完成时,则减少该executor可使用的资源量(使用“lxc-cgroup –n %s %s %lld”)。

    5)   Mesos模块间通信架构

    对于某个计算框架(如Hadoop,Spark等),如果想接入Mesos,需要编写两个组件,分别是FrameworkSchduler和FrameworkExecutor,这两个组件分别实现Scheduler和Executor接口,并分别通过SchedulerDriver和ExecutorDriver接入Mesos,如图中黑色虚线,表示这几个组件之间通过函数调用产生关系。其他组件,即mesos-master,mesos-save,SchedulerProcess和ExecutorProcess之间则通过消息机制进行通信(使用libprocess开源库)。

    (1)【SchedulerProcess与mesos-master】:mesos-master为各个framework分配资源,这些资源直接传递给SchedulerProcess,再由SchedulerProcess调用 FrameworkScheduler的相关函数,由FrameworkScheduler将这些资源分配给框架中的任务,并返回给mesos-master,由mesos-master转发给相应的mesos-slave。

    (2)【SchedulerProcess与Mesos-slave】:如果SchedulerProcess中保存了Mesos-slave的地址,则直接将相关消息发送给Mesos-slave,不必再由mesos-master转发。

    (3)【Mesos-master与Mesos-slave】:Mesos-master管理mesos-slave,如监控slave的健康状况等

    (4)【Mesos-slave与ExecutorProcess】:Mesos-slave负责管理各个framework的executor,并为executor分配资源等。

    具体如下图所示。

     

    转载于:https://www.cnblogs.com/sdifens/p/11350859.html

    展开全文
  • Mesos

    2019-10-31 17:48:55
    深入浅出 Mesos(一):为软件定义数据中心而生的操作系统 很优雅的两级调度架构开始说起。 上图修改自 Apache Mesos 网站上的图片,如图所示,Mesos 实现了两级调度架构,它可以管理多种类型的应用程序。第一级...

    深入浅出 Mesos(一):为软件定义数据中心而生的操作系统

    很优雅的两级调度架构开始说起。

    深入浅出Mesos(一):为软件定义数据中心而生的操作系统

    上图修改自 Apache Mesos 网站上的图片,如图所示,Mesos 实现了两级调度架构,它可以管理多种类型的应用程序。第一级调度是 Master 的守护进程,管理 Mesos 集群中所有节点上运行的 Slave 守护进程。集群由物理服务器或虚拟服务器组成,用于运行应用程序的任务,比如 Hadoop 和 MPI 作业。第二级调度由被称作 Framework 的“组件”组成。Framework 包括调度器(Scheduler)和执行器(Executor)进程,其中每个节点上都会运行执行器。Mesos 能和不同类型的 Framework 通信,每种 Framework 由相应的应用集群管理。上图中只展示了 Hadoop 和 MPI 两种类型,其它类型的应用程序也有相应的 Framework。

    Mesos Master 协调全部的 Slave,并确定每个节点的可用资源,

    聚合计算跨节点的所有可用资源的报告,然后向注册到 Master 的 Framework(作为 Master 的客户端)发出资源邀约。Framework 可以根据应用程序的需求,选择接受或拒绝来自 master 的资源邀约。一旦接受邀约,Master 即协调 Framework 和 Slave,调度参与节点上任务,并在容器中执行,以使多种类型的任务,比如 Hadoop 和 Cassandra,可以在同一个节点上同时运行。

     

    深入浅出Mesos(二):Mesos的体系结构和工作流

    Mesos流程

    接着上一篇文章说。并结合前述的加州大学伯克利分校的白皮书以及Apache Mesos网站,开始我们的讲述:

    我们来研究下上图的事件流程。上一篇谈到,Slave是运行在物理或虚拟服务器上的Mesos守护进程,是Mesos集群的一部分。Framework由调度器(Scheduler)应用程序和任务执行器(Executor)组成,被注册到Mesos以使用Mesos集群中的资源。

    • Slave 1向Master汇报其空闲资源:4个CPU、4GB内存。然后,Master触发分配策略模块,得到的反馈是Framework 1要请求全部可用资源。
    • Master向Framework 1发送资源邀约,描述了Slave 1上的可用资源。
    • Framework的调度器(Scheduler)响应Master,需要在Slave上运行两个任务,第一个任务分配<2 CPUs, 1 GB RAM>资源,第二个任务分配<1 CPUs, 2 GB RAM>资源。
    • 最后,Master向Slave下发任务,分配适当的资源给Framework的任务执行器(Executor),接下来由执行器启动这两个任务(如图中虚线框所示)。 此时,还有1个CPU和1GB的RAM尚未分配,因此分配模块可以将这些资源供给Framework 2。
    展开全文
  • MESOS

    2018-12-25 14:37:12
    二、mesos官网 http://mesos.apache.org/ 三、mesos docker安装方式  1、安装zookeeper docker pull zookeeper:3.4 docker run --name some-zookeeper --restart always -d zookeeper 2、安装mesos-master docker ...

    一、github.com查询
    二、mesos官网
    http://mesos.apache.org/
    三、mesos docker安装方式 
    1、安装zookeeper
    docker pull zookeeper:3.4
    docker run --name some-zookeeper --restart always -d zookeeper
    2、安装mesos-master
    docker pull mesosphere/mesos-master:1.4.1

    vim mesos-master.sh
    #!/bin/bash
    docker run -d --net=host \
      --hostname=192.168.192.101 \
      -e MESOS_PORT=5050 \
      -e MESOS_ZK=zk://192.168.192.100:2181/mesos \
      -e MESOS_QUORUM=1 \
      -e MESOS_REGISTRY=in_memory \
      -e MESOS_LOG_DIR=/var/log/mesos \
      -e MESOS_WORK_DIR=/var/tmp/mesos \
      -v "$(pwd)/log/mesos:/var/log/mesos" \
      -v "$(pwd)/work/mesos:/var/tmp/mesos" \
      mesosphere/mesos-master:1.4.1 \
      --no-hostname_lookup --ip=192.168.192.101
      
    访问192.168.192.101:5050
    3、安装mesos-slave
    docker pull mesosphere/mesos-slave:1.4.1

    vim mesos-slave.sh
    #!/bin/bash
    docker run -d --net=host --privileged \
      --hostname=192.168.192.102 \
      -e MESOS_PORT=5051 \
      -e MESOS_MASTER=zk://192.168.192.100:2181/mesos \
      -e MESOS_SWITCH_USER=0 \
      -e MESOS_CONTAINERIZERS=docker,mesos \
      -e MESOS_LOG_DIR=/var/log/mesos \
      -e MESOS_WORK_DIR=/var/tmp/mesos \
      -v "$(pwd)/log/mesos:/var/log/mesos" \
      -v "$(pwd)/work/mesos:/var/tmp/mesos" \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v /sys:/sys \
      -v /usr/bin/docker:/usr/local/bin/docker \
      mesosphere/mesos-slave:1.4.1 \
      --no-hostname_lookup --ip=192.168.192.102 \
      --no-systemd_enable_support
    4、安装marathon
    docker pull mesosphere/marathon:v1.5.2

    vim marathon.sh
    #!/bin/bash
    docker run -d --net=host \
    mesosphere/marathon:v1.5.2 \
    --master zk://192.168.192.100:2181/mesos \
    --zk zk://192.168.192.100:2181/marathon

    192.168.192.101:8080 

    4、安装marathon-lb
    docker pull mesosphere/marathon-lb:v1.11.1
    vim /marathon-lb.sh
    #!/bin/bash
    docker run -d --net=host -p 9090 \
    -e PORTS=9090 mesosphere/marathon-lb:v1.11.1 sse \
    --marathon http://192.168.192.101:8080 --group external 
    5、服务部署
    ID cpu mem img network force
    containerPort
    servicePort
    HAPROXY_GROUP external
    6、健康检查

    展开全文
  • mesos:Apache Mesos-源码

    2021-02-22 01:38:31
    Apache Mesos Apache Mesos是一个群集管理器,可提供有效的资源隔离和跨分布式应用程序或框架的共享。 它可以在动态共享的节点池上运行Hadoop,Jenkins,Spark,Aurora和其他框架。 请访问访问我们。 邮件列表 ...
  • Mastering Mesos

    2016-12-06 16:08:56
    The ultimate guide to managing, building, and deploying large-scale clusters with Apache Mesos, About This Book, Master the architecture of Mesos and intelligently distribute your task across clusters...
  • mesos mysql_Mesos架构

    2021-01-27 08:29:54
    Mesos Architecture上图显示了 Mesos 的主要组成部分。 Mesos 由一个 master daemon 来管理 slave daemon 在每个集群节点上的运行, mesos applications ( 也称为 frameworks )在这些 slaves 上运行 tasks。Master ...

    Mesos Architecture

    architecture3.jpg

    上图显示了 Mesos 的主要组成部分。 Mesos 由一个 master daemon 来管理 slave daemon 在每个集群节点上的运行, mesos applications ( 也称为 frameworks )在这些 slaves 上运行 tasks。

    Master 使用 Resource Offers 实现跨应用细粒度资源共享,如 cpu、内存、磁盘、网络等。 master 根据指定的策略来决定分配多少资源给 framework ,如公平共享策略,或优先级策略。 为了支持更多样性的策略,master 采用模块化结构,这样就可以方便的通过插件形式来添加新的分配模块。

    在 Mesos 上运行的 framework 由两部分组成:一个是 scheduler ,通过注册到 master 来获取集群资源。另一个是在 slave 节点上运行的 executor 进程,它可以执行 framework 的 task 。 Master 决定为每个 framework 提供多少资源, framework 的 scheduler 来选择其中提供的资源。当 framework 同意了提供的资源,它通过 master 将 task发送到提供资源的 slaves 上运行。

    资源供给的一个例子

    下图描述了一个 Framework 如何通过调度来运行一个 Task

    architecture-example.jpg

    事件流程:

    Slave1 向 Master 报告,有4个CPU和4 GB内存可用

    Master 发送一个 Resource Offer 给 Framework1 来描述 Slave1 有多少可用资源

    FrameWork1 中的 FW Scheduler会答复 Master,我有两个 Task 需要运行在 Slave1,一个 Task 需要<2个cpu,1 gb内存="">,另外一个Task需要<1个cpu,2 gb内存="">

    最后,Master 发送这些 Tasks 给 Slave1。然后,Slave1还有1个CPU和1 GB内存没有使用,所以分配模块可以把这些资源提供给 Framework2

    当 Tasks 完成和有新的空闲资源时,Resource Offer 会不断重复这一个过程。 当 Mesos 提供的瘦接口允许其来扩展和允许 frameworks 相对独立的参与进来,一个问题将会出现: 一个 framwork 的限制如何被满足在不被 Mesos 对这些限制所知晓的情况下? 例如, 一个 framework 如何得到数据本地化在不被 Mesos所知晓哪个节点存储着被该 framwork 所需要的数据?Mesos 通过简单的寄予 frameworks 能够拒绝 offers 的能力来回答了这个问题。 一个 framework 将拒绝 不满足其限制要求的 offers 并接受满足其限制要求的 offers. 特殊情况下,我们找到一个简单的策略 delay scheduling, 在该 frameworks 等待 一个限制时间来获取存储输入数据的节点, 并生成接近的优化过得数据点。

    +

    你也可以从这里了解更多的 Mesos 架构:Mesos技术文档

    展开全文
  • Mesos authentication

    2021-01-01 04:18:46
    <div><p>Coded and tested Mesos authentication to resolve issue <a href="https://github.com/mesos/storm/issues/35">#35</a></p>该提问来源于开源项目:mesos/storm</p></div>
  • perl-mesos:Apache Mesos的Perl绑定
  • awesome-mesos:关于Apache Mesos的一切
  • <div><ul><li>Add a check for mesos masters, only the leader will report metrics</li><li>Add a check for mesos slave, slaves will report metrics from the selected tasks only if the task is running on ...
  • 焕然一新的Mesos

    2021-02-25 15:42:56
    很早的时候,就想找个机会,静下心来,好好写一篇介绍Mesos的文章,好让国内对Mesos感兴趣的同学能有更深入的了解,同时吸引更多志同道合的小伙伴加入社区。苦于项目上的压力,接二连三的deadline,以及作为一个重度...
  • vagrant-mesos 是一款运维工具,可以使 Mesos 集群的安装和运行更加容易。vagrant-mesos 支持 Mesos 0.21.0 集群,同时包括 Marathon (0.8.0) 和 Chronos (2.1.0)正在运行的框架服务器节点。这意味着,你可以使用 ...
  • Mesos Packaging

    2021-01-08 06:43:21
    <div><p>In preparation for adding our own Mesos modules, this PR switches to our Mesos packages. They're much simpler. <p>A second PR will follow soon with support for our own Marathon packages....
  • MESOS support

    2020-11-26 09:59:00
    <p>have Mesos start an orted on each node, passing the orted the contact info from mpirun using the </p><pre><code>--hnp</code></pre> cmd line option. This will cause the orted to "phone home"...
  • <p>Why cannot mesos-master detect mesos-slave after setting <code>resolve.conf</code> and running mesos-dns process.</p><p>该提问来源于开源项目:mesosphere/mesos-dns</p></div>
  • Mesos 1.1.2

    2020-11-21 21:57:28
    <div><p>This upgrades us to mesos 1.1.2. We can't go straight to newest because masters in 1.2 onward will no longer accept connections from 0.x slaves, so the upgrade path would be 😭 . ...
  • 为Apache Mesos进行绑定 正在开发针对Apache Mesos的Pure Go语言绑定。 与其他纯实现一样,mesos-go使用HTTP有线协议直接与正在运行的Mesos主服务器及其从属实例进行通信。 该项目的目标之一是提供一种惯用的Go API...
  • Mesos调度器Swan-Mesos.zip

    2019-07-16 06:57:35
    你可以使用 swan 在 mesos 集群上部署应用程序,并管理应用程序的整个生命周期,还可以使用新版本进行滚动更新,扩展应用程序,并且可以在应用程序或服务不可用时对应用程序和自动故障转移进行运行状况检查。...
  • <div><p>Mesos is now bumped to the latest master ...<ul><li>Bumped Mesos to latest master (apache/mesos).</li><li>Bumped dcos-mesos-modules to latest master (dcos/dcos-mesos-modules)</li><li>Bumped dcos-...
  • mesos概述

    千次阅读 2015-07-27 16:28:34
    Mesos概述
  • The mesos driver might crash, leaving a orphaned mesos framework not able to release mesos offers... <p>Btw, configuring mesos offer timeout option to 10min (for example) does not solve the issue. <p>...
  • apache mesos

    2020-01-03 20:29:24
    apache mesos 是 一个开源的集群管理工具。 mesos使用了容器技术和 zookeeper技术 mesos扮演一个分布式内核的角色。 mesos framework 帮助用户来执行长运行态服务, 类似于init, corn系统等 mesos解决了数据中心的...
  • Apache Mesos Essentials

    2017-03-05 11:04:34
    讲述Mesos的入门使用,并深入分析Mesos内部机制与基于Mesos的开发

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,979
精华内容 3,591
关键字:

mesos