yarn的介绍

hongtenglong 2018-07-19 原文

yarn的介绍

首先我们先了解一下hadoop1.0版本和hadoop2.0版本的区别。

在hadoop1.0中只有两个模块 hdfs  和  mapReduce

  hdfs负责存储

  mapReduce 负责计算

 

在hadoop1.0中 所有计算相关的 全部放到了mapReduce上

    mapReduce在运行的时候有两个进程 jobtracker 和 tasktracker

      jobtracker:是整个计算程序的主节点(老大)

             负责进行资源调度(没有资源调度策略,随机调度)

             还负责监控程序运行的状态,对运行失败的应用程序进行重启

             存在单点故障问题,不支持高可用,如果jobtracker宕机了,整个程序就运行不了了

      tasktracker:负责计算程序的执行

            会强行的将计算资源分成两部分  mapslot 和 reduceslot, map任务只能运行在mapslot中,reduce任务只能运行在reduceslot中,当一个应用程序只需要运行map任务

          不需要运行reduce任务的时候,就会造成资源浪费。

            而且这一部分资源没有划分CPU、IO或者网络

所以hadoop1.0中存在着致命的缺陷

  1)单点故障问题

  2)所有的资源调度是随机的,会造成资源浪费

  3)jobtracker的运行压力过大

 

 

 

hadoop2.0进行了改进,将maperduce分成了两部分mapreduce和yarn

  yarn专门负责程序的资源调度

  yarn的概念:

    yarn再启动的时候会有两个进程

      resourcemanager:整个资源调度的老大

        1)负责接收客户端的请求 这个请求时程序运行的请求

        2)接受nodemanager的状态报告,这个状态报告包括nodenamager的资源状态和存活状态

        3)负责整个计算程序的资源调度   调度的运行资源的多少 和  在哪个节点上运行

      nodemanager:负责真正的提供资源  运行计算程序

        1)接收resourcemanager的命令

        2)提供资源运行计算程序

 

  yarn启动计算及资源调度概念:
    MRAppMaster:单个计算程序的老大   负责帮助当前计算程序向resourcemanager申请资源,
            负责启动maptask任务和reducetask任务 负责监控maptask和reducetask的运行进度
            类似于项目经理

    ASM:applicationsmanager 所有应用程序的管理者  负责调度应用程序

    container:抽象资源容器 封装着一定的cpu io 和网络等资源

    是运行maptask reducetask等的运行资源单位

    1个split对应一个1个maptask  1个maptask分配1个container     1个container在进程中显示的就是1个yarnchild

    scheduler:调度器  调度的是什么时候执行哪个计算程序
      调度器:
        1)FIFO:first in first out 先进先出
        先提交的程序先执行 后提交的程序后执行
        内部维护一个队列

        2)FAIR:公平调度器:

        大家平分资源运行

        假设刚开始只有一个任务 占资源100%

        这时候又来了一个任务 每人占50%

        内部维护一个队列

 

        3)CAPICITY:计算能力调度器:

        可以按需进行配置使用资源:

        内部可以维护多个队列,多个队列之间可以进行资源分配

        在每个队列中都是执行先进先出的

 

发表于 2018-07-19 00:05 Bazinga32 阅读() 评论() 编辑 收藏

 

版权声明:本文为hongtenglong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hongtenglong/p/9333468.html

yarn的介绍的更多相关文章

随机推荐

  1. (DNS)dnsmasq部署DNS

    转自:https://www.hi-linux.com/posts/30947.html   Dnsmasq提 […]...

  2. Linux – last 命令

    前言 为啥写这篇?因为听 grep、sed 教程的时候有这个命令 栗子 加上工作中,运维给我排查问题的时候也用 […]...

  3. 软件工程概论之web基础

    网站系统开发需要的技术 lJava语言 l面向对象分析设计思想 l设计模式和框架结构 lXML语言 l网页脚本 […]...

  4. 【opencv系列01】OpenCV4.X介绍与安装

    OpenCV(开源计算机视觉库:http://opencv.org)是英特尔开源的一个跨平台计算机视觉的BSD […]...

  5. 函数式编程

    函数式编程: 函数编程是一个非常古老的概念,早于第一台计算机的诞生,拥有悠久的历史 学习函数编程的意义: 1、 […]...

  6. 电信支撑系统

    电信业务运营支持系统(BOSS),面对客户是统一的;面对电信运营商,它融合了业务支撑系统(BSS)与运营支撑系 […]...

  7. SqlServer 安装

    环境:win10 64位,SqlServer2014 64位 启动setup,点击安装 提示没有Windows […]...

  8. QQ的安装目录下的文件详解 – lyglive

    ACodec.dll (音频聊天)  +BQQApplication.dll (企业好友面板)  *Camer […]...

展开目录

目录导航