IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop(七) -- Yarn -> 正文阅读

[大数据]Hadoop(七) -- Yarn

一、Yarn概述

资源调度器,负责计算程序的资源调度。

Yarn采用主从架构,主节点RecourceManager,从节点NodeManager。

1. ResourceManager

????????ResourceManager是基于应用程序对集群资源的需求进行调度的YARN集群主控节点,负责协调和管理整个集群(所有nodemanager的资源),相应用户提交的不同类型应用程序的解析,调度,监控等工作。ResourceManager为每个Application启动一个MRAppMaster,并且MRAppMaster分散在各个NodeManager节点。

? ? ? ? 作用:

? ? ? ? ? ? ? ? 1)处理客户端请求

? ? ? ? ? ? ? ? 2)启动并监控MRAppMaster

? ? ? ? ? ? ? ? 3)监控NodeManager

? ? ? ? ? ? ? ? 4)资源的分配和调度

????????它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationsManager, ASM)

? ? ? ? 1)ASM: ApplicationsManager? ? 应用程序管理器

? ? ? ? ? ? ? ? 负责管理应用程序的状态,分配应用程序运行的资源,管理应用程序的MRAppMaster

? ? ? ? ? ? ? ? a. 为每一个应用程序MRAppMaster分配资源

? ? ? ? ? ? ? ? b. 启动每一个应用程序的MRAppMaster

? ? ? ? ? ? ? ? c. 监控每个MRAppMaster的运行状态和进度

? ? ? ? ? ? ? ? d. 回收MRAppMaster的资源

? ? ? ? 2)Scheduler? ? 调度器

? ? ? ? ? ? ? ? 决定应用程序的执行顺序,负责每一个application任务的资源调度。

? ? ? ? ? ? ? ? application的调度:

? ? ? ? ? ? ? ? ? ? ? ? a. FIFO? ? 单一队列调度器

? ? ? ? ? ? ? ? ? ? ? ? b. FAIR? ? 公平调度器。所有任务平分资源

? ? ? ? ? ? ? ? ? ? ? ? c. Capacity? ? 计算能力调度器。多个队列根据实际任务量分配资源,每个队列FIFO

? ? ? ? 每个计算任务先向ASM进行注册,注册后申请资源开始计算,此时调度器开始调度。

2. NodeManager

? ? ? ? 作用:

? ? ? ? ? ? ? ? 1)管理单个节点上的资源

? ? ? ? ? ? ? ? 2)处理来自RescouceManager的命令

? ? ? ? ? ? ? ? 3)处理来自MRAppMaster的命令

? ? ? ? NodeManager真正负责数据的计算并为计算程序提供资源。

? ? ? ? Container:资源提供的最小单位。逻辑资源容器,用于资源隔离。每个Container中封装了一定的CPU、IO、网络和内存等资源。

二、Yarn的资源调度

? ? ? ? 概念:

? ? ? ? MRAppMaster:启动应用程序时最先启动的就是MRAppMaster。MRAppMaster是应用程序的管理者,每个应用程序对应一个MRAppMaster。

? ? ? ? 作用:

? ? ? ? ? ? ? ? 1)帮助maptask、reducetask申请运行资源

? ? ? ? ? ? ? ? 2)负责跟踪maptask、reducetask的运行进度

? ? ? ? ? ? ? ? 3)负责maptask、reducetask的启动

Yarn的资源调度过程:

? ? ? ? 1)客户端进行应用程序提交时,先提交给RecourceManager

? ? ? ? 2)RecourceManager给客户端返回一个节点,用于启动MRAppMaster

? ? ? ? 3)RecourceManager(ASM) 在对应的节点上先启动一个Container并在这个Container中启动RecourceManager(NodeManager上)

? ? ? ? 4)MRAppMaster向RecourceManager申请资源,包括maptask和reducetask的资源

? ? ? ? 5)RecourceManager向MRAppMaster返回maptask和reducetask运行的资源节点。返回资源节点时优先返回计算数据存在的节点(数据本地化)

? ? ? ? 6)MRAppMaster到对应的节点上启动Container,在Container中启动maptask和reducetask

? ? ? ? 7)maptask、reducetask定时向MRAppMaster汇报状态和进度

? ? ? ? 8)当所有的maptask任务和reducetask任务都执行完毕的时候MRAppmaster向RM进行汇报,回收资源? ? ? ??

三、job提交

  1. 客户端向resourcemanger发送提交job请求
  2. resourcemanger会进行检查,检查通过,则会返回一个applicationid(全局唯一,任务提交先后的标识)和一个资源共享路径(hdfs上的路径)
  3. 客户端将共享资源提交到共享资源路径下(job.jar?? job.split?? job.xml)? ? ? ? ? ? ? ? ? ? ? ? /tmp/hadoop-yarn/staging/hadoop/.staging/job_153284021783_0001
  4. 客户端向resourcemanger返回提交完毕并真正提交这个任务
  5. resourcemanger返回一个节点用于启动MRAppmaster
  6. 到对应的nodemanger节点启动container并启动MRAppmaster
  7. resourcemanger初始化job并生成一个作业簿(记录maptask和reducetask的运行进度和状态)
  8. MRAppmaster去共享资源路径下访问共享资源,获取切片信息以及配置文件信息等
  9. MRAppmaster向resourcemanger申请资源(maptask/reducetask的资源)
  10. resourcemanger向MRAppmaster返回资源节点(数据本地化原则)
  11. 资源节点(nodemanger)到共享路径下下载jar包、切片信息等资源
  12. MRAppmaster到对应的nodemanger启动container并启动maptask任务
  13. maptask向MRAppmaster汇报状态和进度
  14. MRAppmaster监控到有一个maptask执行完毕,启动reducetask(抓取数据)
  15. reducetask进行汇报进度和状态
  16. maptask或reducetask运行完毕就会向MRAppmaster进行汇报,并注销和关闭资源
  17. MRAppmaster向resourcemanger注销并关闭自己

执行maptask任务时,将原来的大任务切分成多个小的maptask任务

job.jar???????????? jar包???????????? wc.jar(同一命名为job.jar)

job.split????????? 切片信息?????? 数据的切片信息?? 切片对应数据的存储节点

job.splitmetainfo?????????? 切片信息的元数据

job.xml?? 有关job的所有配置项

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:00:53  更:2021-12-14 16:03:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:26:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码