YARN

YARN的基本思想是将资源管理和作业调度/监视的功能拆分为单独的守护程序(resource management and job scheduling/monitoring)。这个想法是拥有一个全局的ResourceManager(RM)和每个应用程序的ApplicationMaster(AM)。应用程序可以是单个作业,也可以是作业的DAG。

ResourceManager和NodeManager组成数据计算框架。ResourceManager是在系统中所有应用程序之间仲裁资源的最终权限。NodeManager是每台机器的框架代理,负责容器,监视其资源使用情况(cpu,内存,磁盘,网络),并将其报告给ResourceManager / Scheduler。

每个应用程序ApplicationMaster实际上是框架特定的库,其任务是与来自ResourceManager的资源进行协商,并与NodeManager一起执行和监视任务。

MapReduce NextGen体系结构

 

步骤1:用户编写客户端应用程序,向YARN提交应用程序提交的内容包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等

步骤2YARN中的ResourceManager负责接收和处理来自客户端的请求为应用程序分配一个容器在该容器中启动一个ApplicationMaster

步骤3ApplicationMaster被创建后会首先向ResourceManager注册

步骤4ApplicationMaster采用轮询的方式向ResourceManager申请资源

步骤5ResourceManager以“容器”的形式向提出申请的ApplicationMaster分配资源

步骤6在容器中启动任务(运行环境、脚本)

步骤7:各个任务向ApplicationMaster汇报自己的状态和进度

步骤8:应用程序运行完成后,ApplicationMasterResourceManager的应用程序管理器注销并关闭自己

https://www.cnblogs.com/woofwoof/p/10024104.html

配置yarn:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

环境问题原因:https://www.jianshu.com/p/d2b4a79d631b

start-yarn.sh和stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

验证:(1)jps命令可以看见ResourceManager和NodeManager

           (2)访问http://localhost:8088/

一、Yarn
1、定位:分布式操作系统
        作用:资源整合,为了让系统资源利用最大化,
                            在同一套硬件集群上同时可以运行MR任务、Spark任务、Storm任务

2、RM整个Yarn的主:资源管理系统

RM负责1.0中jobtracker中的资源分配
AM负责任务调度:应用程序Master(本质上也是一个普通的Container)

RM有一个可插拔的调度组件Scheduler(可插拔,有很多选项)
NM:Tasktracker的角色,接收RM的请求,分配Container资源,通过心跳给RM汇报监控,并且管理当前节点内部的资源利用情况

container:是个进程,NM来启动、并且监控Container,通过心跳上报给RM

1.0
jobtracker:资源分配、任务调度(包含监控)
Tasktracker

2.0
资源分配——>RM
任务调度——>AM

3、RM、AM本质上其实就是对jobtracker的绝对权力的肢解
4、Container资源:
hadoop1.0:资源成为slot,map slot和reduce slot
slot当做小区停车位,普通小轿车,大型卡车
slot是资源调配单元,slot决定cpu和内存大小
hadoop1.0一个节点默认启动两个map slot和reduce slot
slot只是一个令牌或者是一种许可证,只是一个逻辑的概念

Map slots总数=集群节点数×mapred.tasktracker.map.tasks.maximum
Reducer slots总数=集群节点数×mapred.tasktracker.reduce.tasks.maximum

设定一个slot代表2G内存和1个CPU
一个任务只需要1G内存,1个CPU,由此出现,资源碎片,资源利用率过低
另一个任务需要3G内存,出现抢占其他任务的资源,集群利用率过高

1个节点(机器),16个cpu、32G内存,机器上配置了4个slot

一个slot等于4个cpu、8G内存(等量划分)

hadoop2.0:资源称为container(想象成乐高玩具)

一个机器有多少个container?
container的数量=min(2*cores,1.8*disks、总内存 / 最小容量)

我们要对container配置什么参数?(最小容量)

最小容量=container最小的容量大小,可以配置

Container分为两类:CPU和内存,这两类container会分布在不同节点上,位置随机

yarn里面core概念和真实cpu是等同的么?(不一样的,yarn里的core是虚拟)

container相当于是一个进程

1.0、Mapreduce成为一个job
2.0、Mapreduce称为application

Mapreduce——application
Spark——application
Storm——application

5、容错:
        (1)RM挂怎么办?
        (2)NM挂了怎么办?
                        NM有AM:整个任务都挂了
                        NM上没有AM:整个任务不会挂
        (3)AM挂了怎么办?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值