文档章节

Hadoop系列(八)Hadoop三大核心之Yarn-资源调度初探

o
 osc_dg86vzp6
发布于 2019/11/04 14:44
字数 1293
阅读 63
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

[Toc]

0. Yarn的来源

​ hadoop 1.x的时代,并没有Yarn,hadoop核心组件只有HDFS和MapReduce。到了hadoop2.x才有了Yarn的诞生,组件包含HDFS,MapReduce和Yarn。

​ 诞生原因:hadoop 1.x存在的最大问题就是资源管理问题。技术的发展不再满足于hadoop集群中只使用MapReduce一个计算框架,人们更希望有一套合理的管理机制,来控制集群的资源管理问题。就此Yarn诞生。

1. YARN概述

全称 Yet Another Resource Negotiator。是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce,spark 等运算程序可以运行在YARN上,相当于应用程序运行于操作系统之上

YARN 是 Hadoop2.x 版本中的一个新特性。它的出现是为了解决第一代 MapReduce 编程框架的不足,提高集群环境下的资源利用率,这些资源包括内存,磁盘,网络,IO等。Hadoop2.X 版本中重新设计的这个 YARN 集群,具有更好的扩展性,可用性,可靠性,向后兼容性,以及能支持除 MapReduce 以外的更多分布式计算程序

YARN的特点:

  1. YARN不清楚提交的程序的运行机制
  2. 只提供运算资源的调度,分配。用户申请就分配。
  3. 与运行的用户程序完全解耦。 YARN 上可以运行各种类型的分布式运算程序。比如 MapReduce、Storm 程序,Spark 程序等
  4. yarn 是一个通用的资源调度平台,企业中存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享

Yarn最大的特点是执行调度与Hadoop上运行的任务类型无关

2. YARN的重要组成部分

有两类长期运行的守护进程提供核心服务

  • ResourceManager(主节点) :全局资源管理器
  • NodeManager(从节点):节点资源管理器

主从结构如图

2.1 ResourceManager

整个系统有且只有一个 RM ,来控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager与ApplicationMaster一起分配资源,与NodeManager一起启动和监视它们的基础应用程序 RM里面还有两个重要组成部分:

  1. 应用程序管理器 Application Manager
  2. 资源调度器 Resource Scheduler

ResourceManager名字就是这两个词合并而来

(1)Application Manager 应用程序管理器

应用程序管理器就是负责管理 Client 用户提交的应用的管理器

主要功能:

  1. 负责接收client端传输的job请求,为应用(MapReduce 程序)分配一个Container(资源池)来运行一个Application Master

  2. 负责监控Appication Master

  3. 并且在遇到失败的时候重启Application Master

(2)Scheduler 资源调度器

Resource Scheduler即资源调度器,是让每一个节点都充分利用起来,合理分配和调度资源的一种管理器。

值得注意的是:调度器真的只是一个调度器,不参与任何具体的和应用程序相关的工作。

2.2 NodeManager

NodeManager是YARN集群当中真正资源的提供者,提供执行应用程序的容器, 监控应用程序的资源使用情况(CPU,内存,硬盘,网络),并通过心跳向 ResourceManager 进行汇报,以更新自己的健康状态。同时其也会监督 Container 的生命周期,监控每个 Container 的资源使用情况。 主要功能如下:

  1. 管理单个节点上的资源
  2. 处理来自ResourceManager的命令
  3. 处理来自ApplicationMaster的命令

2.3 逻辑上的组件Application Master

ApplicationMaster 就是一个java程序,进程名:MRAppMaster

作用:负责监控Map、Reduce任务。用户提交的每一个程序都会产生一个ApplicationMaster,这个AM就是负责整个任务的一个管理者,由这个 AM去向ResourceManager 申请容器资源,获得资源后会将要运行的程序发送到容器上启动,然后进行分布式计算。

主要功能:

  1. 与调度器(Scheduler)协商,获取执行资源
  2. 与NodeManager通信,启动任务和停止任务
  3. 监控所有旗下Job的执行状态,重启失败任务

3. Container 资源池

Yarn中的资源抽象,封装了多维度资源: 内存,cpu,磁盘等。Container就是Scheduler进行资源分配的一个单位,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

  • 容器由 NodeManager 启动和管理,并被它所监控。
  • 容器被 ResourceManager 进行调度。

4. 小结

Yarn是Hadoop2.x之后引入的新组件。Yarn的架构采用了主从结构,一主多从(ResourceManager & NodeManager)。Yarn在Hadoop中的功能作用有两个,第一是负责Hadoop集群中的资源管理(resource management),第二是负责对任务进行调度和监控(scheduling/monitoring)。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
SQLServer实现split分割字符串到列

网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题。 先贴上某大牛写的s...

cwalet
2014/05/21
9.6K
0
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.8K
1
Hbase的Windows访问接口库--libhbase4win

libhbase4win是基于Thrift的Hbase的Windows访问接口库,开发工具使用VS2010,Hadoop版本为1.1.0,Hbase版本为0.94.0,thrift版本0.9.0,执行编译需要boost和thrift支持。...

张子良
2013/03/06
757
0
硬实时操作系统--Raw OS

Raw-OS 起飞于2012年,Raw-OS志在制作中国人自己的最优秀硬实时操作系统。 Raw-OS 操作系统特性 内核最大关中断时间无限接近0us, s3c2440系统最大关中断时间实测0.8us。 支持idle任务级别的事...

jorya_txj
2013/03/19
6.2K
1
并行编译工具--Icecream

Icecream 是由 SUSE 创建的、基于 distcc 的并行编译工具。可在远程机器上执行构建和分发、并行编译。与 distcc 不同的是,Icecream 使用一个中央服务器动态的对编译作业进行调度。...

匿名
2013/04/11
1.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

认识Node

什么是Node? Node 是 JavaScript 的一种运行环境。可以使 JS 代码不依赖浏览器也可以执行。他俩的差异如下: 两个运行环境都包含了 ECMScript 。另一方面 JavaScript 包含了 BOM 和 DOM。 ...

长臂猿猴
30分钟前
13
0
正则表达式中的非捕获组是什么? - What is a non-capturing group in regular expressions?

问题: 非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? 解决方案: 参考一: https://stackoom.com/question/Ejkl/正则表达式中的非捕获组是什么 参考二: https://oldbug.net...

技术盛宴
30分钟前
6
0
他在国外演讲时说,学Python只要看答案做完这几十道题,就足够了

你想学Python?其实很简单,因为Python本身就是一门比较简单的编程语言。 你要做的也就是看着答案做完这几十道题就可以了,不管你是不是有编程基础,因为答案摆在那儿,你不可能不会做。 为什...

python小天
30分钟前
0
0
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制

0 复习 代理模式 代理模式,可以为目标类添加额外功能。 Spring 动态代理 定义目标类对象 定义额外功能,增强。实现Spring内置的接口 配置增强类 定义切入点 编织组装 增强类型 前置增强 Me...

鹿老师的Java笔记
50分钟前
21
0
OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部