hadoop学习之yarn资源管理
一、yarn简介
yarn是在hadoop2.x中才引入的一个新的机制,在hadoop1.x中MapReduce任务需要同时做任务管理和资源分配,那么引入yarn之后,hadoop的资源管理的任务就全部交给yarn来处理,从而实现存储、任务、资源的分离。
二、yarn的主要角色
1.ResourceManager
ResourceManager是基于应用程序对集群资源的需求进行调度的Yarn集群主控节点,负责协调和管理整个集群(所有 NodeManager)的资源,响应用户提交的不同类型应用的 解析,调度,监控等工作。
2.NodeManager
NodeManager 是 Yarn 集群当中真正资源的提供者,是真正执行应用程序的容器的提供者,监控应用程序的资源使用情况(CPU,内存,硬盘,网络),并通过心跳向集群资源调度器 ResourceManager 进行汇报以更新自己的健康状态,管理日志和不同应用程序用到的附属服务。
3.ApplicationMaster
负责应用程序相关的事务,比如任务调度、任务监控和容错等。
4.Container
hadoop集群的资源统称,包括cpu,内存,磁盘,网络等。
三、工作机制
1.首先,用户通过客户端连接到RM,向RM发送申请启动应用
2.RM会先去NM上面寻找,看哪个NM还有资源空余,这里的资源就是指container
3.假设其中一个NM汇报说我这里有资源,然后RM就会命令NM分配对应的container
4.RM在NM分配的container上面启动应用 ,并监控应用
5.若这个应用也有子应用要启动(比如spark的driver启动excuter),则会通知RM,然后RM继续向NM请求资源
6.NM继续分配container,RM在其上面启动应用,并监控
下面以一张spark on yarn的流程举例,spark先向RM申请资源启动driver,然后driver继续申请资源启动excuter
四、yarn的资源调度
1.FIFO
一个hadoop集群默认的yarn资源调度策略就是FIFO,FIFO模式会根据任务的请求的先后依次执行,若在前一个任务执行的过程中还有资源空余,便会同时执行下一个任务,直到资源全部被占用,那么剩下的后面的任务就需要进行等待
2.capaticy
通常用于一个集群(集群被多个组织共享)中运行多个Application的情况,目标是最大化吞吐量和集群利用率。CapacityScheduler允许将整个集群的资源分成多个部分,每个组织使用其中的一部分,即每个组织有一个专门的队列,每个组织的队列还可以进一步划分成层次结构(Hierarchical Queues),从而允许组织内部的不同用户组的使用。
每个队列内部,按照FIFO的方式调度Applications。当某个队列的资源空闲时,可以将它的剩余资源共享给其他队列。
3.fair
FairScheduler允许应用在一个集群中公平地共享资源。默认情况下FairScheduler的公平调度只基于内存,也可以配置成基于memory and CPU。当集群中只有一个app时,它独占集群资源。当有新的app提交时,空闲的资源被新的app使用,这样最终每个app就会得到大约相同的资源。可以为不同的app设置优先级,决定每个app占用的资源百分比。FairScheduler可以让短的作业在合理的时间内完成,而不必一直等待长作业的完成。简单来说就是,谁抢到资源就归谁使用。
hadoop学习之yarn资源管理的更多相关文章
- Hadoop学习之YARN框架
转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/,非常感谢分享! 对于业界的大数据存储及分布式处理系统来说,H ...
- Hadoop学习笔记—Yarn
目录 一些基本知识 ResourceManager 的恢复 Resource Manager的HA YARN Node Labels YARN Node Attributes Web Applicat ...
- hadoop学习 的yarn
Yarn的产生 mapReduc1.0 1单点故障 2扩展效率低 3资源利用率高 降低运维成本 方便数据共享 多计算框架支持 MapReduce Spark Storm Yarn的架构图 Yarn模块 ...
- Hadoop学习路线图
Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括, ...
- 【Hadoop学习之七】Hadoop YARN
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 YARN: ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- Hadoop学习------Hadoop安装方式之(二):伪分布部署
要想发挥Hadoop分布式.并行处理的优势,还须以分布式模式来部署运行Hadoop.单机模式是指Hadoop在单个节点上以单个进程的方式运行,伪分布模式是指在单个节点上运行NameNode.DataN ...
- hadoop 学习(二)
我们很荣幸能够见证Hadoop十年从无到有,再到称王.感动于技术的日新月异时,希望通过这篇内容深入解读Hadoop的昨天.今天和明天,憧憬下一个十年. 本文分为技术篇.产业篇.应用篇.展望篇四部分 技 ...
- Hadoop学习之第一个MapReduce程序
期望 通过这个mapreduce程序了解mapreduce程序执行的流程,着重从程序解执行的打印信息中提炼出有用信息. 执行前 程序代码 程序代码基本上是<hadoop权威指南>上原封不动 ...
随机推荐
- docker容器备份、恢复和迁移volume方案
volume作为数据的载体,在很多情况下需要对其中的数据进行备份.迁移或是恢复.下面一docker容器的volume为例,说一下备份的技巧. 我们先建立一个容器vol_simple,该容器在/date ...
- centos7上mysql5.6版本主从复制
做主从复制实验: 第一步:主服务器上操作 1.修改主服务器master: [root@localhost ~]# vim /etc/my.cnf server_id = 1 //[必须]服务器唯一I ...
- Golang 中哪些值是不可以寻址的
不可以寻址, 指的是不能通过&获得其地址. golang中不能寻址的可以总结为:不可变的,临时结果和不安全的.只要符合其中任何一个条件,它就是不可以寻址的. 具体为: 常量的值. 基本类型值的 ...
- python iter函数用法
iter函数用法简述 Python 3中关于iter(object[, sentinel)]方法有两个参数. 使用iter(object)这种形式比较常见. iter(object, sentinel ...
- POJ 2505
#include<iostream> #include<stdio.h> using namespace std; int main() { //freopen("a ...
- vue教程3-04 vue.js vue-devtools 调试工具的下载安装和使用
vue教程3-04 vue.js vue-devtools vue调试工具的安装和使用 一.vue-devtools 下载与安装 1.需要 fan qiang 2.打开谷歌浏览器设置--->扩展 ...
- .NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇
Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展 ...
- MapReduce中的倒排索引
0.倒排索引资料: http://blog.csdn.net/pzasdq/article/details/51442856 1.三个日志源文件: a.txt hello tom hello jerr ...
- php -- 获取函数参数
----- 015-parameter.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv=&q ...
- Supervisod的使用
原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...