0
点赞
收藏
分享

微信扫一扫

Redis为什么是单线程的?Redis性能为什么很快?

代码小姐 2023-11-18 阅读 45

1.简介 

  • Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。
  • 支持多个数据处理框架(MapReduce Spark Storm等)。具有资源利用率高、运行成本底、数据共享等特点

资源调度管理的作用

MapReduce是基于yarn运行的,没有yarn一般就无法运行MapReduce程序

资源调度的作用:对于资源的利用,有规划,有管理的调度资源使用,是效率最高的方式

对程序进行资源调度的重要性:服务器会运行多个程序,每个程序对资源的使用都不同,

程序没有节省的概念,有多少就会用多少,所以为了提高资源利用率,调度是必须的

2.分布式资源调度-YARN 

YARN主要有ResourceManager和NodeManager等组件组成,他们的职责分别是:

ResourceManager: 接收用户的计算请求任务,监控NodeManager,资源分配和调度
NodeManager: 负责执行主节点分配的任务(给MR的计算程序提供资源) , 管理单个节点上的资源,处理来自ResourceManager的命令

 3.YARN提交mr流程

客户端提交计算任务-先去rm那找资源-rm指定nm去创建am-am告知rm自己状态,监测-am通知所有nm去工作,并分配对应的mr任务-map的分工作完成后,先向am报告,am表示可以了,map才可以将任务给reduce-当整个工作完成后,am向rm注销自己,资源释放.

1.客户端提交一个MR程序给ResourceManager(校验请求是否合法...)

2.如果请求合法,ResourceManager随机选择一个NodeManager用于生成appmaster(应用程序控制者,每个应用程序都单独有一个appmaster)
3.appmaster会主动向ResourceManager的应用管理器(application manager)注册自己,告知自己的状态信息,并且保持心跳
4.appmaster会根据任务情况计算自己所需要的container资源(cpu,内存...),主动向ResourceManager的资源调度器(resource scheduler)申请并获取这些container资源

5.appmaster获取到container资源后,把对应指令和container分发给其他NodeManager,让NodeManager启动task任务(maptask任务,reducetask任务)
6.NodeManager要和appmaster保持心跳,把自己任务计算进度和状态信息等同步给appmaster,(注意当maptask任务完成后会通知appmaster,appmaster接到消息后会通知reducetask去maptask那儿拉取数据)直到最后任务完成

7.appmaster会主动向ResourceManager注销自己(告知ResourceManager可以把自己的资源进行回收了,回收后自己就销毁了)

4.YARN的三大调度器

先进先出调度器:FiFO Scheduler(常用于测试)

公平调度器:Fair Scheduler

容量调度器:Capacity Scheduler(版本默认使用)

举报

相关推荐

0 条评论