Yarn架构基本概况(二)

在概况(一)中,主要简单的对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的部署能够是以下这幅图的样子。

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

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

4)Yarn的未来

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

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

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

时间: 2024-10-09 22:23:14

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

Yarn架构基本概况(一)

1)引言 针对MRv1在扩展性,可靠性,资源利用率和多框架的支持上存在着明显的不足,进而诞生了下一代的MapReduce的计算框架MapReduce Version2,MRV1中有一个很大的问题就是把资源管理和作业调度都扔给了JobTracker,造成了严重的单点瓶颈问题,所有MRV2主要在这一点上做了改进,他将资源管理模块构建成了一个独立的通用系统叫做Yarn,一下子MRV2的核心从MapReduce转到了Yarn上.后面就有了关于Yarn的各种发展和演变了. )Yarn设计理念和基本架构 y

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

Hadoop YARN架构解读 原Mapreduce架构 原理架构图如下: 图 1.Hadoop 原 MapReduce 架构 原 MapReduce 程序的流程:首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败.重启等操作.TaskTracker 是 Map-reduce 集群中每台机器都有的一个

OS应用架构谈(二):View层的组织和调用方案(中)

OS应用架构谈(二):View层的组织和调用方案(中) 作者 田伟宇 发布于 2015年5月28日 | 注意: ArchSummit全球架构师峰会(北京)2015年12月18-19日,了解更多详情!讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单 iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.中篇主要讨论MVC.MVCS.MVV

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

深入HBase架构解析(二) 前言 这是<深入HBase架构解析(一)>的续,不多废话,继续.... HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证在一起,甚至删除一个Cell也只是写入一个新的Cell,它含有Delete标记,而不一定将一个Cell真正删除了,因而这就引起了一个问题,如何实现读的问题?要解决这个问题,我们先来分析一下相同的Cell可能存在的位置:首先对新写入的Cell,它会存在于M

一种可伸缩的全异步C/S架构服务器实现(二)

二.网络传输模块 模块对应代码命名空间    (namespace ZPNetwork) 模块对应代码存储文件夹    (\ZoomPipeline_FuncSvr\network) 2.1 模块结构 网络传输模块负责管理监听器,并根据各个传输线程目前的负荷,把新申请接入的客户套接字描述符引导到最空闲的传输线程中执行"接受连接(Accept)"操作.该模块由如下几个类组成. 1.zp_net_Engine类,派生自Qobject.模块的外部接口类,同时也是功能管理者.提供了设置监听器.

理解Hadoop YARN架构

1. 介绍 YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度. 其核心出发点是为了分离资源管理与作业调度/监控,实现分离的做法是拥有一个全局的资源管理器(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM),应用程序由一个作业(Job)或者Job的有向无环图(DAG)组成. YARN可以将多种计算框架(如离线处理MapReduce.在线处理的

YARN环境搭建 之 二:CentOS7.0 JDK配置

Hadoop是Java写的,他无法使用Linux预安装的OpenJDK,因此安装hadoop前需要先安装JDK(1.6以上)   原材料:在Oracle官网下载的32位JDK:     说明: 1.CentOS 7.0系统现在只有64位的,但是,Hadoop一般支持32位的,在64位环境下有事会有Warning出现,避免真的有神马问题,选择i586的JDK(即32位的),当然,64位的CentOS 7 肯定是兼容32位JDK的,记住:64位系统肯定兼容32位的软件,32位系统不能兼容64位软件.

Spark on Yarn 架构解析

. 一.Hadoop Yarn组件介绍: 我们都知道yarn重构根本的思想,是将原有的JobTracker的两个主要功能资源管理器 和 任务调度监控 分离成单独的组件.新的架构使用全局管理所有应用程序的计算资源分配. 主要包含三个组件ResourceManager .NodeManager和ApplicationMaster以及一个核心概念Container. 1.ResourceManager(RM)  就是所谓的资源管理器,每个集群一个,实现全局的资源管理和任务调度.它可以处理客户端提交计算

大型网站核心架构要素 之二(细解网站的高性能架构)

一.不同视角下的网站高性能指标,以及其优化 1.开发人员的视角 开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟.系统吞吐量.并发处理能力.系统稳定性等技术指标.优化网站性能的主要手段包括 使用缓存加速数据读取,使用集群提高吞吐能力,使用异步消息加快请求响应及实现削峰,使用代码优化手段改善网站性能. 2.运维人员视角 运维人员更关注基础设施性能和资源利用率,如网络运营商的宽带能力.服务器硬件的配置.数据中心网络架构.服务器和网络带宽的资源利用率等.主要优化手段有建设优化骨干网.