在概况(一)中,主要简单的对Yarn的情况作了简单的介绍,今天花一定时间在某些详细的模块上呈现下面Yarn的总体情况。帮助大家更好的理解Yarn。

1)ResourceManager

在Yarn的总体架构中。他用的也是Master/Slave架构,他的Slave是NodeManager,RM在Yarn中扮演着一个很重要的角色。他是负责集群中全部资源的统一管理和分配的。

他依据各个NM的资源汇报信息。把这些信息依照一定策略分配各个应用程序。以下是ResourceManager的主要内部结构:

(1).用户交互模块

(2).NM管理模块

(3).AM管理模块

(4).Application应用管理模块

(5).安全管理模块

(6).资源分配模块

(7).状态机管理模块。ResourceManager使用有限状态机来维护状态的生命周期的。比方RMApp应用状态机,RMConta容器状态机。

1.ResourceManager事件处理

在Yarn广泛採用了事件驱动的机制。由1个中心事件分发器,对于传进来的事件做转发处理。大大的提高了效率。

2)资源调度模型

在MRV1中,资源调度默认採用的是简单的FIFO的方式,可是在需求日益多元化的条件下,这样的方式一件渐渐的没有那么完美了,于是适用于多用户的资源调度器就出现了。

主要2种设计思路。

(1).在同个集群中虚拟多个Hadoop集群,这些Hadoop集群拥有全套的Hadoop服务。典型的代表HOD(Hadoop On Demand)调度器。

(2).资源调度器以多用户多队列的形式实现。每一个队列仅仅要每一个队列执行着类似的用户群,每一个队列里有自己分配的资源和任务。可是他们是共享一整套Hadoop的资源的。

3)NodeManager

NM是Yarn上单个节点上的代理。

他有例如以下的作用

1.与ResourceManager通信

2.管理Contain容器的的生命周期

3.监控Contain的资源使用情况

4.管理节点健康状况

5.管理日志服务

与RM一样,NM也採用了事件驱动的形式来控制整个过程。有很多的事件类型经过事件处理器处理后会改变对象的状态机,进而改变了对象的声明周期。

3)在Yarn上执行多种计算框架

Yarn是一一个通用的资源管理框架,在上面执行多种计算框架才是啊他的最大的不同MRV1的地方。作为一个资源框架,有2样东西你必需要重写一个提交应用的Client,另一个是与待接入框架相适应的ApplicationMaster,后者的设计尤其是关键。由于提交程序的Client都差点儿相同的。

1.MRV1主要是通过JobTracker和TaskTracker实现的,所以他在Yarn的部署能够是以下这幅图的样子。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kcm9pZGx1c2hhbmdkZXJlbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

2.Storm,实时处理框架在Yarn是怎么执行的呢。Storm与MRV1还是很类似的。通过Nimbus,Supervisor,中间加个zookeeper做协调服务就能实现了。模拟图例如以下。

当然以上还都是设计思路,终于还是通过自己实现client和自己定义的ApplicationMaster实现终于的设计。

4)Yarn的未来

在近期几年。也衍生出了一些类似于Yarn的通用计算框架,比方Apache Mesos,他相同能够支持MapReduce和Storm,在某些特性上和Yarn还是有些不同的。

只是这个框架还不是特别稳定眼下。

作为通用的计算框架,在Yarn的身上,还是有些缺点的。比方由于执行在Yarn上的计算框架是资源隔离的, 所以各个框架是不知道集群的总体资源执行情况的,就不好进行总体资源的调度。各个计算是框架不知道当在节点很繁忙的时候是应该等待自己的任务执行完了在继续以下的任务。还是向系统请求新的资源,假设系统此时也很忙,显然不适合请求,反而要等更长时间。假设系统资源此时很空。那这就是正确的策略。

Yarn架构基本概况(二)的更多相关文章

  1. Yarn架构基本概况(一)

    1)引言 针对MRv1在扩展性.可靠性,资源利用率和多框架的支持上存在着明显的不足.进而诞生了下一代的MapReduce的计算框架MapReduce Version2,MRV1中有一个非常大的问题就是 ...

  2. Yarn架构详解

    Yarn架构介绍Yarn/MRv2最基本的想法是将原JobTracker主要的资源管理和job调度/监视功能分开作为两个单独的守护进程.有一个全局的ResourceManager(RM)和每个Appl ...

  3. yarn架构——本质上是在做解耦 将资源分配和应用程序状态监控两个功能职责分离为RM和AM

    Hadoop YARN架构解读 原Mapreduce架构 原理架构图如下: 图 1.Hadoop 原 MapReduce 架构 原 MapReduce 程序的流程:首先用户程序 (JobClient) ...

  4. 【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法

    本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程.通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式 ...

  5. [转]毕设- 深入HBase架构解析(二)

    深入HBase架构解析(二) 前言 这是<深入HBase架构解析(一)>的续,不多废话,继续.... HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell(RowKe ...

  6. Spark on Yarn 架构解析

    . 一.Hadoop Yarn组件介绍: 我们都知道yarn重构根本的思想,是将原有的JobTracker的两个主要功能资源管理器 和 任务调度监控 分离成单独的组件.新的架构使用全局管理所有应用程序 ...

  7. YARN架构设计详解

    一.YARN基本服务组件 YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager ...

  8. 【深入浅出 Yarn 架构与实现】1-1 设计理念与基本架构

    一.Yarn 产生的背景 Hadoop2 之前是由 HDFS 和 MR 组成的,HDFS 负责存储,MR 负责计算. 一)MRv1 的问题 耦合度高:MR 中的 jobTracker 同时负责资源管理 ...

  9. 【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境

    本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境.(默认已安装好 Java.Maven 环境) 一.搭建源码阅读环境 一)idea 导入 hadoop 工程 从 github 上拉取代码 ...

随机推荐

  1. ioctl方法详解

    设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations 结构,这里我们将介绍一个新的方法: int (*ioctl) (struct inode ...

  2. 关于ssh加密方式的理解

    最近公司服务器被挖矿,所以更换了ssh的连接方式,从之前的密码登陆更换为密钥登陆方式,且禁止了密码登陆.所以在配置这个密钥的过程中,顺带了解了些ssh的原理和相关知识.通用的开源 1.ssh是什么,为 ...

  3. Liunx搜索命令行

    1.grep grep(General Regular Expression Parser,通用规则表达式分析程序)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 它的使 ...

  4. 爱,死亡和机器人 第十四集 齐马蓝 中文字幕(Python处理utf8文件获取想要的内容)

    处理代码 file = "a.srt" fi = open(file, mode='r') a = fi.readline() i = 1 while len(str(a)) != ...

  5. 转/ C# 托管资源和非托管资源

    原文 对于这两个一直就是模模糊糊的,半知零解 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源.托管资源的回收工作是不需要人工干预的,由.NET运行库在合适时调用垃圾回收器 ...

  6. 【Oracle】回收站

    ☆回收站概念 oracle从10g开始,引入回收站(Recycle Bin)概念.回收站的全称叫:Tablespace Recycle Bin.回收站是一个逻辑区域,oracle并没有为它分配物理空间 ...

  7. MySQL定时任务与存储过程实例

    shell 定时任务:​/usr/bin/mysql -uroot -pxxxxx databasename -e "update table set ......."​​mysq ...

  8. sublime text 3 上安装xdebug

    安装完成之后启动xdebug,缺省设置下会显示warning等信息,很不方便. 可以参考 https://github.com/martomo/SublimeTextXdebug/blob/maste ...

  9. switch注意事项

    Day03_SHJavaTraining_4-5-2017 switch注意事项:①switch语句接受的数据类型 switch语句中的表达式的数据类型,是有要求的 JDK1.0 - 1.4    数 ...

  10. mvvm模式和mvc模式 概述总结对比

    1.mvc模式简介: MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范.例如: angular ...