当前位置:网站首页>Yarn的基础介绍以及job的提交流程
Yarn的基础介绍以及job的提交流程
2022-07-07 08:14:00 【故事写在心里-】
文章目录:
一、YARN的基础理论
1)关于YARN的介绍:
YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。
2)hadoop1.x中YARN的不足:
- JobTracker是集群的事务的集中处理,存在单点故障
- JobTracker需要完成得任务太多,既要维护job的状态又要维护job的task的状态,造成资源消耗过多
- 在 TaskTracker 端,用Map/Reduce Task作为资源的表示过于简单,没有考虑到CPU。内存,等资源情况,将两个需要大消耗量的Task调度到一起,很容易出现OOM。
- 把资源强制划分为 Map/Reduce Slot,当只有 MapTask 时,TeduceSlot 不能用;当只有 ReduceTask 时,MapSlot 不能用,容易造成资源利用不足。
3)hadoop2.x中YARN的新特性:
- MRv2 最基本的想法是将原 JobTracker 主要的资源管理和 Job 调度/监视功能分开作为两个单独的守护进程。
- 有一个全局的ResourceManager(RM)和每个 Application 有一个ApplicationMaster(AM),Application 相当于 MapReduce Job 或者 DAG jobs。ResourceManager和 NodeManager(NM)组成了基本的数据计算框架。ResourceManager 协调集群的资源利用,任何 Client 或者运行着的 applicatitonMaster 想要运行 Job 或者 Task 都得向 RM 申请一定的资源。ApplicatonMaster 是一个框架特殊的库,对于 MapReduce 框架而言有它自己的 AM 实现,用户也可以实现自己的 AM,在运行的时候,AM 会与 NM 一起来启动和监视 Tasks。
4)YARN中的角色介绍:
ResourceManager:ResoueceMananer是基于应用程序对集群资源的需求进行调度的yarn集群的主控制节点,负责协调和管理整个集群,相应用户提交的不同的类型的应用程序,解析、调度、监控等工作。ResourceManager会为每一个application启动一个MRappmaster,并且MRappmaster分散在各个nodemanager上。
ResourceManager 是由两个部分组成:
- 应用程序管理器(ApplicationsManager, ASM): 管理和监控所有的应用程序的MRappmaster,启动应用程序的MRappmaster,以及MRappmaster失败重启
- Hadoop 调度器主要分为三类:调度器(Scheduler):
FIFO Scheduler:先进先出调度器:优先提交的,优先执行,后面提交的等待(生产环境不会使用);
Capacity Scheduler:容量调度器:允许创建多个任务队列,每个队列使用所有资源的一部分。多个任务队列可以同时执行。但是一个队列内部还是先进先出。(Hadoop 2.7.2 默认的调度器);
Fair Scheduler:公平调度器:第一个程序在启动时可以占用其他队列的资源(100%占用),当其他队列有任务提交时,占用资源的队列需要将资源还给该任务。还资源的时候,效率比较慢。(CDH版本的yarn 调度器默认)
NodeManager:
Nodemanager是yarn集群中正真资源的提供者,也是真正执行应用程序的容器的提供者,监控应用程序的资源情况(cpu、网络、IO、内存)。并通过心跳向集群的主节点ResourceManager 进行汇报以及更新自己的健康状况。同时也会监督container的生命周期管理,监控每个container的资源情况
MRAppMaster:为当前的job的mapTask和reduceTask向ResourceManager 申请资源、监控当前job的mapTask和reduceTask的运行状况和进度、为失败的MapTask和reduceTask重启、负责对mapTask和reduceTask的资源回收。
Container:Container 是一个容器,一个抽象的逻辑资源单位。容器是由ResourceManager Scheduler 服务动态分配的资源构成的,它包括该节点上的一定量的cpu、网络、IO、内存,MapReduce 程序的所有 Task 都是在一个容器里执行完成的。
5)YARN中的资源调度:
- 客户端提交计算任务到resourceManager(hadoopxx.jar)
- resourceManager会在一个节点上启动一个container,在其中运行一个MRappmaster
- MRappmaster向resourceManager申请资源运行行maptask和reducetask
- resourceManager向MRAPPmaster返回运行maptask和reducetask的节点
- MRAPPmaster到相应的节点中启动一个container在其中运行maptask和reudcetask
- MRappmaster监控maptask或者reducetask的运行状况
- nodemanger在运行完maptask或者reducetask后,向MRappmaster申请注销自己,释放资源
- MRappmaster向resourcemanager注销自己,释放资源。
二、YARN的job 提交流程:
客户端向resourcemanager提交job运行的请求(hadoop jar xxxx.jar)
Resourcemanager进行检查,没有问题的时候,向客户端返回一个共享资源路径以及JobID
客户端将共享资源放入共享路径下:(/tmp/hadoop-yarn/staging/hadoop/.staging/job_1539740094604_0002/)
Job.jar 需要运行的jar包,重命名为job.jar
Job.split 切片信息 (FlieInputFormat—getSplits List)
Job.xml 配置文件信息 (一些列的job.setxxxx())客户端向resourcemanager反馈共享资源放置完毕,进行job的真正提交
resourceManager为这个job分配一个节点并在这个节点上启动MRAPPmaster任务
resourceManager到对应的节点上去启动一个container然后启动mrappmaster
MRappmaster去共享资源路径中下载资源(主要是split、job)
MRappmater对job进行初始化,生成一个job工作簿,job的工作薄记录着maptask和reduce的运行进度和状态
MRappmaster向resourcemanager申请maptask和reducetask的运行的资源,先发maptask然后发reducetask
resourcemanager向MRAPPmaster返回maptask和reduce的资源节点(返回节点时,有就近原则,优先返回当前的maptask所处理切片的实际节点,数据处处理的时候可以做到数据的本地化处理。如果是多副本的时候就在多副本的任意节点。而reducetask任务在任意不忙的节点上启动)
MRAPPmaster到对应的节点上启动一个container,然后在container中启动maptask任务
maptask任务到对应的共享资源路径下下载相应的资源(运行的jar包)
maptask任务启动,并且定时向MRAPPmaster汇报自己的运行状态和进度
当有一个maptask任务完成之后,reduce就启动container然后在启动启动reduce任务,但是这里的reducetask只做数据拉取的工作,不会进行计算
reduceTASK任务到对应的共享资源路径下载相应的资源(运行的jar包),当所有的maptask任务运行完成后,启动reduce任务进行计算
当maptask或者是reducetask任务运行完成之后,就会MRAPPmaster申请注销自己,释放资源当application任务完成之后,MRAPPmaster会向resourcemanager申请注销自己,释放资源。
边栏推荐
- 浅谈日志中的返回格式封装格式处理,异常处理
- Enterprise practice | construction of banking operation and maintenance index system under complex business relations
- STM32基础知识—内存映射
- C#记录日志方法
- mysql插入数据创建触发器填充uuid字段值
- Remote meter reading, switching on and off operation command
- Encrypt and decrypt stored procedures (SQL 2008/sql 2012)
- Why is the reflection efficiency low?
- . Net configuration system
- 串口通讯继电器-modbus通信上位机调试软件工具项目开发案例
猜你喜欢
High number_ Chapter 1 space analytic geometry and vector algebra_ Quantity product of vectors
Remote meter reading, switching on and off operation command
A wave of open source notebooks is coming
Appx代碼簽名指南
Word自动生成目录的方法
VS Code指定扩展安装位置
ORM -- logical relation and & or; Sort operation, update record operation, delete record operation
Some thoughts on the testing work in the process of R & D
Encrypt and decrypt stored procedures (SQL 2008/sql 2012)
电表远程抄表拉合闸操作命令指令
随机推荐
The request object parses the request body and request header parameters
JMeter loop controller and CSV data file settings are used together
The method of word automatically generating directory
字符串格式化
【HigherHRNet】 HigherHRNet 详解之 HigherHRNet的热图回归代码
Download Text, pictures and ab packages used by unitywebrequest Foundation
Use of JSON extractor originals in JMeter
移动端通过设置rem使页面内容及字体大小自动调整
EasyExcel读取写入简单使用
SQLyog数据库怎么取消自动保存更改
Easyexcel read write simple to use
柏拉图和他的三个弟子的故事:如何寻找幸福?如何寻找理想伴侣?
ArcGIS operation: converting DWG data to SHP data
2022.7.3DAY595
Several schemes of building hardware communication technology of Internet of things
[learning notes - Li Hongyi] Gan (generation of confrontation network) full series (I)
Fiddler simulates the interface test
【STM32】STM32烧录程序后SWD无法识别器件的问题解决方法
ORM -- query type, association query
Fiddler break point