当前位置: 首页 > news >正文

Yarn学习笔记

Apache Hadoop YARN (Yet AnotherResource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

1 Hadoop2.0相对Hadoop1.0做的改进

(1) 针对Hadoop1.0单NameNode制约HDFS的扩展性问题,提出HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时解决了NameNode单点故障问题;

(2) 针对Hadoop1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn;

(3) hadoop2.0相对hadoop1.0没有JobTracker和TaskTracker进程,多了ResourceManager和NodeManager进程;

(4) Hadoop1.0里面,map和reduce任务必须提前申请到slot;Hadoop2.0里面,没有slot概念,统一变成container容器;

(5) MapReduce经历了完全重构,不再是Hadoop的核心组件,而成为Yarn上的一种应用框架(可替代:storm、spark。。。多种计算框架运行);

(6) 在Yarn中,Job的概念换成了application;

(7) 重构的根本思想:将JobTracker两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度/监控。

2 Yarn 特点

(1) 良好的扩展性、高可用;

(2) 对多种类型的应用进行统一管理和调度;

(3) 自带多种用户调度器,适合共享集群环境;

(4) 相比传统模式,提供了资源利用率、降低运维成本和数据共享成本。

3 系统架构

(1) ResourceManager(RM)

a) 接受客户端请求,资源分配分配;

b) 管理每一个Job所属的Application的各种状态;

c) 监控NN各种状态(NN心跳上报);

d) 有一个可插拔的调速器组件Scheduler,调度的资源就是Container;

e) scheduler不负责应用程序的监控和状态跟踪,不保证任务失败情况下对task的重启。


(2) ApplicationMaster(AM)
a) 是一个普通的Container的身份运行,不是实时都存在的;
b) 负责一个job生命周期内所有工作,job完成,AM消失;
c) 与RM协商实例所需的Container资源;
d) 与NN协商合适的Container,和进行Container监控;
e) AM可以是MapReduce任务、storm任务、spark任务等。

(3) NodeManager(NM)
a) 是slave进程,类似TaskTracker的角色,有多个;

b) 处理来自RM的任务请求;

c) 接收并处理来自ApplicationMaster的Container启动、停止等各种请求;

d) 负责启动应用程序的Container(执行应用程序的容器),并监控他们的资源使用情况(CPU、内存、磁盘和网络),并报告给RM;

e) 总的来说,在单节点上进行资源管理和任务管理。

(4) Container
a) 是任务运行环境的抽象封装;
b) Container只是使用NM上指定资源的权利;
c) AM必须向NM提供更多的信息来启动Container;
d) 描述任务的运行资源(节点、内存、cpu)、启动命令和运行环境。

4 执行流程

(1) Client请求ResourceManager运行一Application Master实例(step1)

(2) Resource Manager选择一个NodeManager,启动一个Container并运行Application Master实例(step 2a、step 2b)

(3) Application Master根据实际需要向ResourceManager请求更多的Container资源(step 3);

(4) Application Master通过获取到的Container资源执行分布式计算(step4a、step 4b);

(5) Application Master向NodeManager提供更多Container的信息;

(6) NodeManager启动Container。

5 容错

(1) RM挂掉

单点故障,新版本可以基于Zookeeper实现HA高可用集群,可通过配置进行设置准备RM,主提供服务,备同步主的信息,一旦主挂掉,备立即做切换接替进行服务

(2) NM挂掉

当NM挂了,会通过心跳方式通知RM,RM将情况通知对应AM,AM作进一步处理;

(3) AM挂掉

若挂掉,RM负责重启,其实RM上有一个RMApplicationMaster,是AM的AM,上面保存已经完成的task,若重启,无需重新运行已经完成的task。

6 Yarn调度器

(1) FIFO Scheduler:按提交顺序,最简单,大应用占用所有集群资源,不适合共享集群;

(2) Capacity Scheduler:专有队列运转小任务,预先占一定集群资源,导致大任务执行时间落后于FIFO;

(3) Fair Scheduler:不需要预占,动态调整,公平共享。

http://www.lryc.cn/news/89145.html

相关文章:

  • 智能路由器开发之OpenWrt简介
  • Linux音频和视频命令速查表
  • 脉蜂:Django + Flutter 开发的进销存管理系统【已开源】
  • 树的先序,中序,后序递归遍历
  • 如何在Linux中更改SSH端口?
  • 合创视觉科技UI设计师就业发展前景怎么样?薪资待遇如何?
  • VB一个可以改变箭头方向的气泡提示
  • STM8、STM8S003F3P6 双机串口通信(片上串口)
  • FPGA基于AXI 1G/2.5G Ethernet Subsystem实现千兆UDP通信 提供工程源码和技术支持
  • 机器学习基础知识之多模型性能对比评价方法
  • 对敏感信息脱敏,如对姓名、证件号码、手机号码、银行卡号码进行脱敏
  • 创建型——单例模式C++实现
  • 【华为OD统一考试B卷 | 100分】执行时长(C++ Java JavaScript Python)
  • 操作系统原理 —— 内存管理的概念(十八)
  • GPT-4国内怎么用
  • 搭建LightPicture开源免费图床系统「公网远程控制」
  • shell编程lesson06
  • 国内免费可用的ChatGPT网页版
  • 用同样的关键词测试不同的人工智能
  • shell变量类型含义 长方形面积计算 截取相应字段方法
  • Java:从单线程计数器到多线程数据同步synchronized和原子类Atomic
  • 提前进入行业顶尖阵营:高性能计算实习的竞争优势
  • Java程序设计入门教程--标识符和关键字
  • 国产IC芯片自动化测试系统ATECLOUD,助力芯片测试自动化
  • BeanFactory和ApplicationContext有什么区别?
  • js的BOM对象中的window、location使用
  • DAY 68 redis高可用的主从复制、哨兵、cluster集群
  • leetcode 1209 学会删除字符串
  • JavaScript6
  • 轻松安装Redis:不用担心配置问题