Yarn分布式集群操作系统

Apache Hadoop YARN 是 apache Software Foundation Hadoop的子项目,为分离Hadoop2.0资源管理和计算组件而引入。YARN的诞生缘于存储于HDFS的数据需要更多的交互模式,不单单是MapReduce模式。Hadoop2.0 的YARN 架构提供了更多的处理框架,不再强迫使用MapReduce框架。

Yarn定位: 分布式集群操作系统
1、资源管理和调度
2、支持多个不同计算框架
3、Mapreduce框架彻底重构

1.介绍下Yarn的框架?(重要)
​ Yarn的框架也是经典的主从结构,和HDFS的一样,大体上yarn由一个ResourceManager和多个NodeManager构成,RM为主节点,NM为从节点。

组件名
作用
ResourceManager
是Master上一个独立运行的进程,负责集群统一的资源管理、调度、分配等等;
ApplicationManager
相当于这个Application的监护人和管理者,负责监控、管理这个Application的所有Attempt在cluster
中各个节点上的具体运行,同时负责向Yarn ResourceManager申请资源、返还资源等;
NodeManager
是Slave上一个独立运行的进程,负责上报节点的状态(磁盘,内存,cpu等使用信息);
Container
是yarn中分配资源的一个单位,包涵内存、CPU等等资源,YARN以Container为单位分配资源;

(1) 抽象解读:

资源级别:
Resource Manger :链家总部 ----分配资源
NodeManager :链家分店店长 --- 监管工作,检查定期美容院分店
美容院总部--开100家分店
任务级别:
ApplicationManager:美容院老板--监控分店
Contianer: 美容店分店----干活
ResourceManager:
1、接收客户端请求
2、为系统资源分配
3、与NM进行心跳交互,监控集群
4、调度组件Scheduler
RM挂掉: 单点故障:基于Zookeeper实现HA,主提供服务, 备同步主的信息,如果主挂掉,立即主备切换
ApplicationManager/ApplicationMaster (MR任务启动时候jps有MRAppmaster,任务完成就没了)
1、应用程序的Master
2、每一个Job对应一个AM
3、AM和RM不在一个机器
4、AM申请RM资源调度
5、AM联合NM监控job
AM挂掉: RM负责重启 无需重新运行已完成的任务
NodeManager:(只管内存资源)
1、对应1.0TaskTracker的角色
2、负责启动应用程序的Container
3、监控内部容器资源使用情况,心跳RM
NM挂掉: 心跳消失,RM通知AM进一步处理
Container:
1、任务运行环境的封装
2、AM及普通任务均运行在Container中
3、资源代表
container数量=min(2*cores, 1.8*disks, 总内存大小/最小容量)

具体解读:

​ ResourceManager是一个全局的资源管理器,负责整个系统的资源调度管理和分配,包括处理客户端请求、启动并监控ApplicationMaster,监控NodeManager,以及分配和调度资源。
ResourceManager中由两个组件构成: Schedule调度器和ApplicationManager应用程序管理器

Schedule调度器会根据容量、队列等限制条件,对应用程序的资源需求进行资源分配。(调度器有三种:先进先出调度器,容量调度器和均分调度器)

ApplicationManager则主要负责管理整个系统中所有应用程序,接受job请求,为应用分配一个Container来运行ApplicationMaster并管理,它和ApplicationMaster的区别是Master运行在NodeManger上的,而ApplicationManager是ResourceManager内部的一个组件。

ApplicationMaster
负责管理yarn内运行的应用程序的每个实例,负责协调来自ResourceManager的资源,并通过NodeManager监控容器的执行和资源使用情况。
NodeManager
在集群上有多个,它负责每个节点上的资源使用,处理ApplicationManager的请求,以及负责接受ResourceManager的资源分配命令,分配具体的Container给应用,同时还将Container的使用情况报告给ResourceManager。
​ 这里的Container实际上是一个资源抽象概念,代表系统上分配的资源,包括内存、磁盘、IO等。

​(2)具体工作过程如下:

​1. 当客户端应用程序向ResourceManager提交应用需要的资源请求后,ResourceManager中的ApplicationManager接受到请求,并返回一个Container给NodeManger,告诉NodeManager启动一个ApplicationMaster实例。
​ 2.ApplicationMaster启动后向ResourceManager注册,此时客户端可以和ApplicationMaster直接交互,并告诉它需要的资源请求;后续ApplicationMaster继续发送资源请求给ResourceManager,待ResourceManager的Schedule处理后返回具体的Container信息,ApplicationMaster接收到资源信息后会分配给各个NodeManager来启动运行job任务(比如mr程序,内部是多个map task、reduce task)。
3.​ 在运行过程中,客户端和ApplicationMaster保持交互,可以得知程序的运行情况。ApplicationMaster此时主要监控和管理任务运行,而NodeManager会定时向ResourceManager汇报自身的运行状况和Container的使用信息,待程序运行完毕后,ApplicationMaster关闭,并向ResourceManager归还所有Container。
概括来说其过程如下:
​ 应用程序提交 --> 申请资源 --> 启动ApplicationMaster --> 申请运行任务的Container
--> 分发Container --> 运行task任务 --> task任务结束 --> 回收Container。

总结:

Yarn 工作流程,一个应用程序的运行过程
1.用户client将应用程序提交到RM上
2.RM为应用程序ApplicationMaster申请资源,并且与nodemanager心跳通信,来启动Application Master
3.ApplicationMaster与RM进行通信,为内部要执行的任务申请资源,一旦得到资源后,Application Master和Nodemanager通信,来启动对应任务
4.所有任务完成ApplicationMaster向RM注销,整个应用程序结束。

另外JobHistoryServer(作业历史服务,记录在yarn中调度的作业历史运行情况) 和 Timeline Server(写日志数据),需要手动开启。
2.Yarn的动态性是指什么?
​ 是指多个应用程序的ApplicationMaster动态地和ResourceManager进行沟通,不断地申请资源,释放,再申请,再释放资源的过程。
3.Yarn的调度器有哪三种?他们的区别是什么?(重要)
​ yarn中有三种调度器选择:

FIFO Scheduler(先进先出调度器),

Capacity Scheduler(容量调度器),

Fair Scheduler(均分调度器)

三种调度器区别

hadoop1.x使用的默认调度器就是FIFO。FIFO采用队列方式将一个一个job任务按照时间先后顺序进行服务,比较好理解,哪个任务先进来就先完成它,在继续下一个任务。

hadoop2.x使用的默认调度器是Capacity Scheduler。Capacity Schedule调度器以队列为单位划分资源,队列有独立的资源,队列的结构和资源是可以进行配置的。

Fair Scheduler调度器会为所有job任务动态调整系统资源,且是平均分配的形式,让任务公平的共享集群资源

Yarn分布式集群操作系统相关推荐

  1. 大数据开发笔记(二):Yarn分布式集群操作系统

      ✨大数据开发笔记推荐: 大数据开发面试知识点总结_GoAI的博客-CSDN博客_大数据开发面试​本文详细介绍大数据hadoop生态圈各部分知识,包括不限于hdfs.yarn.mapreduce.h ...

  2. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  3. Hadoop伪分布式集群的安装部署

    Hadoop伪分布式集群的安装部署Hadoop伪分布式集群的安装部署 首先可以为Linux虚拟机搭建起来的最初状态做一个快照,方便后期搭建分布式集群时多台Linux虚拟机的准备. 一.如何为虚拟机做快 ...

  4. Hadoop分布式集群的安装与部署实训总结报告

    目录 前言 一.Hadoop平台框介绍 1.Hadoop的架构 2.HDFS:遵循主从架构,它具有以下元素. 2.1 名称节点 -Namenode 2.2 数据节点 - Datanode 2.3 块 ...

  5. Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)

    前言 本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识. 思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧. 目录 一.引入 hdfs是什么 h ...

  6. Hadoop分布式集群的搭建

    1.概念 1.1大数据 大数据主要解决海量数据的采集.存储和分析计算的问题. 主要具有以下特点: 数据量大Volume:数据量在TB.PB.EB.ZB.YB.BB.NB.DB之上的数量级,一些大型企业 ...

  7. Hadoop分布式集群搭建完全详细教程

    Hadoop分布式集群环境搭建步骤如下 实验环境: 系统:win7 内存:8G(因要开虚拟机,内存建议不低于8G) 硬盘:建议固态 虚拟机:VMware 12 Linux:Centos 7 jdk1. ...

  8. Hadoop分布式集群搭建完全教程

    Hadoop分布式集群环境搭建步骤如下 实验环境: 系统:win7 内存:8G(因要开虚拟机,内存建议不低于8G) 硬盘:建议固态 虚拟机:VMware 12 Linux:Centos 7 jdk1. ...

  9. Ubuntu18.04+Docker+Hadoop+Spark分布式集群搭建

    题前记:因为课程需求,下面将搭建过程用学术论文的格式写.(其实我并不想写的,没办法,学习作业嘛QAQ...) 我的联系方式:630056108 文章目录 Docker上的Hadoop大数据平台搭建与测 ...

最新文章

  1. 227. 基本计算器 II
  2. Android入门之AlertDialog
  3. CRM呼叫中心和社交媒体集成的UI错误信息显示机制
  4. web前端篇:html基础知识
  5. [CTO札记]电纸书,将成为教学、阅读潮流
  6. pdf reference官方指南之-文本和字体
  7. 资本大佬们背后鲜为人知的秘史3
  8. Android获取外网ip
  9. 解析MTK获取系统时间函数大全
  10. 场景二:刮刮卡,大转盘等抽奖算法
  11. 爬虫之点触验证码的识别
  12. 谷歌滤镜软件叫什么_谷歌app爆红的拍照功能:你最像名画中的谁?
  13. 【ora】+eclp+OpM错误提示、特殊处理
  14. 《C#零基础入门之百识百例》(五十二)封装介绍 -- 二维多项式求值
  15. textjoin去重_excel中几列相同的数据,多列去重? | excel表格删除重复数据
  16. C# 项目--更换用户头像,使用相对路径
  17. bosun 快速入门
  18. i5 12600kf参数i5 12600kf功耗
  19. java.lang.NoSuchFieldError错误
  20. sangfor培训总结

热门文章

  1. Linux磁盘空间监控告警
  2. 精通版本之Subversion
  3. if __name__ == '__main__' 如何正确理解?
  4. 【重点!DP】LeetCode 97. Interleaving String
  5. Leetcode 199
  6. 关于样本量的快速证明
  7. 矩阵相关的一些中英文对照术语
  8. 对tensorflow 的BatchNormalization的坑的理解与测试
  9. Java WEB之过滤器
  10. Java转C#的最佳工具