hadoop体系当前重要的两个资源管理框架:mesos&yarn

一:背景介绍

       在当前hadoop的整个体系架构中,mesos和yarn是两个比较流行的资源管理组件。在MR1之前,hadoop核心代码包里没有资源管理组件,主要是依赖mesos进行资源的管理。等到MR2之后,hadoop自身发布了新一代资源管理组件 yarn。由于先天优势,从目前业界的使用情况来看,yarn越来越被经常使用。然而,mesos就被取代了吗?从目前来看,yarn在资源调度时延以及稳定性方面都不如mesos。下面我们先了解二者的处理流程,然后再综合比较下。

二:mesos

2.1 Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache Incubator中的项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。Apache Mesos为了简化设计,也是采用了master/slave结构,通过zookeeper解决该单点故障问题将master做得尽可能地轻量级,其上面所有的元数据可以通过各个slave重新注册而进行重构.

下面我们介绍几个名词

(1)    Mesos-master:Mesos master,主要负责管理各个framework和slave,并将slave上的资源分配给各个framework

(2)    Mesos-slave:Mesos slave,负责管理本节点上的各个mesos-task,比如:为各个executor分配资源

(3)    Framework:计算框架,如:Hadoop,Spark等,通过MesosSchedulerDiver接入Mesos

(4)    Executor:执行器,安装到mesos-slave上,用于启动计算框架中的task。


mesos总体架构



总体上看,Mesos是一个master/slave结构,其中,master是非常轻量级的,仅保存了framework(各种计算框架称为framework)和mesos slave的一些状态,而这些状态很容易通过framework和slave重新注册而重构,因而很容易使用了zookeeper解决mesos master的单点故障问题。

Mesos master实际上是一个全局资源调度器,采用某种策略将某个slave上的空闲资源分配给某一个framework,各种framework通过自己的调度器向Mesos master注册,以接入到Mesos中;而Mesos slave主要功能是汇报任务的状态和启动各个framework的executor(比如Hadoop的excutor就是TaskTracker)。

整个mesos系统采用了双层调度框架:第一层,由mesos将资源分配给框架;第二层,框架自己的调度器将资源分配给自己内部的任务。

在Mesos中,各种计算框架是完全融入Mesos中的,也就是说,如果你想在Mesos中添加一个新的计算框架,首先需要在Mesos中部署一套该框架; Mesos采用linux container对内存和cpu进行隔离。

2.2 Framework 注册时资源分配过程


1.      framework add

2.      framework actived

3.      Slave注册上来,只是分配当前的Slave

4.      revive offers

5.      allocation_interval 周期之后,定周期执行

流程图如下




2.3Mesos executor注册流程

Mesos executor注册流程稍微复杂些,我打算分两个流程来讲解:

首先:从dirver task启动到slave task运行,这一阶段是为了后续注册做准备

其次:从run task消息分发到executor注册

下图为dirver task启动到slave task运行流程图



run task消息分发到executor注册流程图如下

slave run task以后,根据当前状态要进行判断,

如果,当前executor已经启动,则发送runtask消息,executor执行task

否则,开始executor注册里流程

当前没有executor起送,需要executor注册流程如下



当前有executor已经启动,就比较简单了,直接发送runtask message让task去执行


2.4Framework本身的注册

之前和大家一起梳理了Framework的资源分配流程,接下来,把Framework本身的注册流程和大家一起过一下。

Framework本身的注册是一个比较复杂的流程,准备分为以下几个步骤

1. Framework scheduler到master detected过程

2. Master到resourceoff message消息发送

      3.Mesos schedulerdriver到executor的任务启动

Framework scheduler到master detected过程流程图如下



Master到resourceoff message消息发送流程如下



Mesos scheduler driver到executor的任务启动流程如下


以上framework自身的注册就完成了


2.5mesos作业更新上报

Master/slave架构最重要的一点就是消息上报,底层的处理结果要及时通知给上层,才能保证流程执行的正确性。

Mesos上报的主要流程如下

Frameworkexecutor -> executorprocess -> slave -> master ->frameworkscheduler

详细流程如下:



以上mesos的主要处理流程就梳理完了,下面准备另起一篇,描述yarn的调度机制,最后把二者的区别做个总结



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值