Hadoop之Yarn学习

一.简介

        yarn(Yet Another Resource Negotiator) 是一种新的资源管理器以及通用资源管理系统.

        它提供了资源管理,任务调度及监控,提高了集群的管理效率等

二.产生背景

        在hadoop1.x中主要是一个jobTracker带领多个TaskTracker进行工作,jonTracker的压力太大,容易出现单点故障和负载过重等问题.因此诞生了yarn

三.yarn的特点及应用

        资源管理和计算框架的解耦设计,提高利用率

        只需要运维一个集群就可以满足多种计算框架的需求

        避免了单点故障,以及集群可扩展性低的问题

        只要涉及到资源管理和任务调度的平台均可以使用

四.架构设计

        yarn将资源管理和任务调度分配给了两个角色,分别是负责统筹全局的ResourceManager和每个应用中唯一的ApplicationMaster.实现了分布式的管理应用

4.1基本组成

        client: 面向用户,作为用户和ResourceManager交互的桥梁

        ResourceManager: 整个集群只有一个是激活的,可以存在其他相同副本,负责整个集群的资源分配和调度.同事负责启动和监控ApplicationMaster

        NodeManager: 整个集群中存在若干个,负责单个节点的资源调度和任务分配,同事也负责接受来自ApplicationMaster的命令,接受ResourceManager启动和停止container的命令

        ApplicationMaster: 每一个程序都有,负责整个程序的管理,会进行数据切分,向ResourceManager申请资源,与NodeManager进行通信来进行启动和停止任务.

        Container: 任务运行时的环境的抽象  

4.2运行流程图

 4.3运行流程

        1.用户向yarn提交命令

        2.ResourceManager分配一个Container并且让NodeManager在Container中启动一个ApplicationMaster

        3.ApplicationMaster向ResourceManager注册,用户可以通过ApplicationMaster对任务进行查看,如果一次没有申请到位,会先试用已经申请到的,剩余的会通过RPC方式继续向ResourceManager进行申请

        4.申请到资源后,ApplicationMaster告诉NodeManager启动任务

        5.NodeManager接受命令并启动Container中的任务

        6.每一个Container向ApplicationMaster汇报任务执行情况,进行心跳机制,在任务失败时,ApplicationMaster会重启任务

        7.等待全部任务完成以后,ApplicationMaster会告知ResourceManager,并且申请销毁自己.

五.调度策略

        5.1MRv1的调度策略

                集中式调度器,将所有的功能集中在单一进程中,会导致扩展性差和规模受限等问题

        5.2Yarn调度策略

                yarn采用双层调度架构,优点是将集中式的调度器一分为二(ResourceManager和ApplicationMaster),减轻压力

        5.3常用的调度策略

                5.3.1FIFO Schedule(先进先出)

                        把用户提交的作业排成队列,使用先进先出的原则,缺点是可能会有比较大的作业占用资源过多,导致队列堵塞

                5.3.2Capacity Schedule(容器调度器)

                        多用户共享集群,每个用户或者组织分配了专门的队列.不支持抢占模式.缺点是可能会造成资源浪费

                5.3.3Fair Schedule(公平调度器)

                        所有用户分配公平的资源,支持抢占.可以划分多队列.但是缺点是可能会出现任务被中途杀死的情况

六.yarn shell应用

        yarn常用命令:yarn version  查看版本信息

                              yarn jar  提交jar包

                              yarn classpath  获取运行时的classpath

                              yarn application -list 查看所有正在运行的application列表

                              yarn application -kill +id 杀死对应的application

                              yarn top  查看yarn当前资源使用情况 

七.容错性

        1.基于Zookeeper实现HA,避免单点故障

        2.AM挂掉以后,RM会重启AM,已经完成的Task不会重新运行.

        3.若任务失败,会由AM进行决定处理,若包含AM,则RM会重启AM

        4.Task Failure会通过心跳机制将信息告诉AM,若超时或失败,AM会重新恢复Task

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值