Hadoop(三)YARN
Yet Another Resources Negotiator
从Hadoop2.0版本开始引入YARN,主要功能:
- 集群资源管理系统
- 负责集群的统一管理和调度
- 与客户端交互,处理客户端请求
一、基本架构
Master/Slave架构
资源管理和节点管理器组成
集群的机器启动nodemanager进程,一般与HDFS的datanode一一对应
resourcemanager负责机器资源的统一调度,一般不和nodemanager共同运行于一个节点,nodemanager负责节点资源的监控和管理,其所在节点上的资源情况和运行的任务的状态都会通过nodemanager向resourcemanager进行反馈,这种反馈是通过心跳的方式反馈,周期性汇报
resourcemanager负责接收客户端提交的作业请求,是一些计算任务,并不是上传文件,上传文件是上传到namenode
接收到这些任务后,会调度这些任务在集群中运行,在YARN中真正执行任务的是container,container是cpu和内存等计算资源抽象的容器,真实的任务是运行在container中的
resourcemanager调度一个任务的时候首先会和nodemanager进行通信,要求nodemanager启动一个container,container会根据运行的程序封装需要的内存、cpu和网络等资源
启动完container,针对程序还会启动applicationmaster,每个程序都有程序管理器,负责具体任务的资源申请、任务调度和监控。向resourcemanager申请资源,申请到后与nodemanager进行通信,要求nodemanager启动container执行具体任务
任务执行过程中不断与applicationmaster进行通信,汇报任务执行情况和状态、
客户端通过resourcemanager获得applicationmaster的连接信息,与applicatinomaster建立连接,不断与applicationmaster进行通信,获取任务最新的进度信息,直到任务结束,释放占用的资源,container关闭
一般两个resourcemanager,一个active一个standby
二、核心组件
1.ResourceManager
只有一个
功能:
- 处理客户端请求
- 启动/监控ApplicationMaster
- 监控NodeManager健康状态
- 资源分配和调度
2.NodeManager
在mastermanager之外启动NodeManager,一般与DataNode一一对应
功能:
- 单个节点上的资源监控和管理
- 定时向ResourceManager汇报本机的资源使用情况
- 处理来自ResourceManager的请求,为作业的执行分配Container
- 处理来自ApplicationMaster的请求,启动和停止Container
3.ApplicationMaster
每个应用程序只有一个,负责应用程序的管理,资源申请和任务调度
功能:
- 与ResourceManager协商为应用程序申请资源
- 与NodeManager通信启动/停止任务
- 监控任务运行状态和失败处理
4.Container
任务运行环境的抽象,只有在分配任务的时候才会抽象出一个container
功能:
- 任务运行资源(节点、内存、CPU)
- 任务启动命令
- 任务运行环境
三、YARN容错
ResourceManager
- 基于zookeeper实现高可用 启动多个ResourceManager
NodeManager
- NodeManager故障将导致运行在该节点的任务失败,任务失败后,ResourceManager将失败任务通知对应的ApplicationMaster
- ApplicationMaster决定如何处理失败的任务
ApplicationMaster
- ApplictationMaster失败后,由ResourceManager负责重启
四、运行流程
1.客户端向ResourceManager发送提交作业的请求,收到请求后向客户端返回作业ID
2.ResourceManager会找其中的一个nodemanager向它发送请求来分配container,nodemanager启动container,在container中启动一个ApplicatinMaster,ResourceManager会监控这个ApplicationMaster运行状态
ApplicationMaster启动后会计算其负责的作业需要多少个map,多少个reduce,运行这些任务需要多少cpu,多少内存
3.ApplicationMaster向ResourceManager注册,注册成功后开始申请作业运行需要的资源,当resourcemanager将资源分配给ApplicationMaster之后,ApplicationMaster接收到这些资源,信息当中包含这些资源是由哪些nodemanager提供的,
4.ApplicationMaster会和对应的NodeManager进行通信,给nodemanager分配container,要求nodemanager启动container并启动对应的任务
运行在container中的任务会向ApplicatinoMaster运行状态和进度
在运行过程当中,客户端通过ResourceManager获取到ApplicationMaster通信地址,客户端与ApplicationMaster进行通信,周期性的获取到作业运行的状态,因为作业在运行中会周期性向ApplicationMaster进行汇报状态和进度
任务都完成之后,作业就结束了AM会像RM注销,释放掉占用的资源
Hadoop(三)YARN的更多相关文章
- Hadoop三种安装模式:单机模式,伪分布式,真正分布式
Hadoop三种安装模式:单机模式,伪分布式,真正分布式 一 单机模式standalone单 机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守 ...
- hadoop(三)
hadoop(三) 1.对MapReduce的认识 MapReduce是运行在yarn上面的一个分布式运算框架,它是用来解决海量的分布式运算的.对于MapReduce来说,我们可以把它分成两部分来 ...
- hadoop之yarn详解(框架进阶篇)
前面在hadoop之yarn详解(基础架构篇)这篇文章提到了yarn的重要组件有ResourceManager,NodeManager,ApplicationMaster等,以及yarn调度作业的运行 ...
- Hadoop三种架构介绍及搭建
apache hadoop三种架构介绍(standAlone,伪分布,分布式环境介绍以及安装) hadoop 文档 http://hadoop.apache.org/docs/ 1.StandAlo ...
- Hadoop(HDFS,YARN)的HA集群安装
搭建Hadoop的HDFS HA及YARN HA集群,基于2.7.1版本安装. 安装规划 角色规划 IP/机器名 安装软件 运行进程 namenode1 zdh-240 hadoop NameNode ...
- (转)hadoop三个配置文件的参数含义说明
hadoop三个配置文件的参数含义说明 1 获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配 ...
- 3.Hadoop测试Yarn和MapReduce
Hadoop测试Yarn和MapReduce 1.配置Yarn (1)配置ResourceManager 生产环境中,一般是重开一台机器作为ResourceManager,这里我们以Master机器代 ...
- hadoop之yarn(优化篇)
最近一直在学习hadoop的一些原理和优化,然后也做了一些实践,也有没有去做实践的,反正个人观点都记录下来 一.yarn的介绍 YARN的基本结构由一个ResourceManager与多个NodeMa ...
- 三、hadoop、yarn安装配置
本文hadoop的安装版本为hadoop-2.6.5 关闭防火墙 systemctl stop firewalld 一.安装JDK 1.下载java jdk1.8版本,放在/mnt/sata1目录下, ...
随机推荐
- SQL笔试题:下面是学生表(student)的结构说明
SQL笔试题:下面是学生表(student)的结构说明 SQL笔试题:下面是学生表(student)的结构说明 字段名称 字段解释 字段类型 字段长度 约束 s_id 学号 字符 10 PK s_na ...
- pipeline语法之判断一个文件存在与否
先看一个例子,原理,根据命令返回的状态值来判断它的存在与否 pipeline { agent any stages { stage("check file if exists"){ ...
- DMA实验总结
一.RCC设置 没什么好写的之前USART的基本一样 /************************************************************************ ...
- SCP-bzoj-1090
项目编号:bzoj-1090 项目等级:Safe 项目描述: 戳这里 特殊收容措施: 区间DP.设计状态f[i][j]表示压缩从第i位到第j位的字符串所需的最小长度.转移方式有三种: •初始化:j-i ...
- VC连接SQLite3的方法(MFC封装类)
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,支持跨平台,操作简单,能够使用很多语言直接创建数据库.官方网站:www.sqlite.org 在VC环境下编写连接SQLite的 ...
- PLSQL连接虚拟机中的Oracle数据库
下面这个连接对以后虚拟机安装非常有用!!! https://blog.csdn.net/lixin5456985/article/details/81670095
- 项目质量管理—七种基本质量工具
出处:PMBOK(第五版) P236 1.因果图,又称鱼骨图或石川图 用来追溯问题来源,回推到可行动的根本原因.(找根本原因) 2.流程图,也称过程图 用来显示在一个或多个输入转化成一个或多个输出的过 ...
- 20175223 MySQL
目录 完成结果 要求 1 :导入world.sql 要求 2 :CityWanna.java CityWanna.java 要求 3 :CountryWanna.java CountryWanna.j ...
- 三种做法:BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster
目录 题意 思路 AC_Code1 AC_Code2 AC_Code3 参考 @(bzoj 2780: [Spoj]8093 Sevenk Love Oimaster) 题意 链接:here 有\(n ...
- Python Numpy 矩阵级基本操作(1)
NumPy的操作介绍 import numpy as np #导入numpy包,简写为np print "Generate 1*10 matrix" a=np.arange(1,1 ...