Yarn分布式集群操作系统

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

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为从节点。

image.png


image.png


(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任务动态调整系统资源,且是平均分配的形式,让任务公平的共享集群资源


目录
相关文章
|
5月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
439 2
|
10月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
10月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
955 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
存储 分布式计算 负载均衡
分布式计算模型和集群计算模型的区别
【10月更文挑战第18天】分布式计算模型和集群计算模型各有特点和优势,在实际应用中需要根据具体的需求和条件选择合适的计算架构模式,以达到最佳的计算效果和性能。
614 62
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
SQL 网络安全 数据库
GBase 8a集群V8客户端gccli适配欧拉操作系统绕行方案分析
GBase 8a集群V8客户端gccli适配欧拉操作系统绕行方案分析
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
297 5
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
187 4
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
539 5

推荐镜像

更多