zoukankan      html  css  js  c++  java
  • 【Hadoop离线基础总结】Yarn集群的资源调度

    Yarn集群的资源调度


    介绍

    • 概述
      YarnHadoop 2.x 引入的新的资源管理系统模块,主要用于管理集群当中的资源(主要是服务器的各种硬件资源,比如内存CPU等),它不光管理硬件资源,还管理运行的一些任务信息等。

    • Yarn调度资源可以分为两个层级
      一级管理调度:管理计算机的资源、运行job任务的生命周期
      二级管理调度:任务的计算模型(maptask,reducetask的代码)、多样化的计算模型(spark,storm)

    • yarn集群当中各个组件的作用
      ResourceManager:主节点,主要用于接受用户请求,分配资源
      NodeManager:从节点,主要用于处理任务的计算
      ApplicationMaster:每提交一个任务,启动一个appmaster,它全权负责管理我们任务的执行。
                 主要职责:申请资源,分配资源(分配Container),监控任务执行的进度状况,回收资源,和resourceManager通信,报告任务的执行状况“自杀”
      Container:资源分配的单位,所有的资源都是以caontainer的形式来进行划分的,便于资源的分配和回收
      JobHistoryServer:历史完成的任务信息
      TimeLineServer:2.4版本之后出来的新特性,查看正在执行任务的信息


    调度器

    • 概述
      调度器解决任务先后提交如何保证任务最快执行的一种策略,研究的是任务之间如何一起执行的问题

    • Hadoop当中的调度器主要有三种
      第一种fifo 队列调度器(first in first out)(没人用)
      运行规则:第一个任务来了,先执行,第二个任务来了,等着
      弊端:如果有一个很大的计算任务先来,需要执行两个小时,再来一个小任务,需要两分钟,第二个任务必须要等第一个完成。
      第二种capacity scheduler 容量调度器(apache的hadoop版本默认使用的调度器)
      运行规则:将集群的资源,划分成好几个队列,任务提交的时候,可以选择不同的队列进行提交。
      优点:根据提交任务需要资源的大小不同,可以将任务划分到不同给的队列下面去。
      第三种fair scheduler 公平调度器(CDH版本的hadoop默认的调度规则)
      运行规则:如果没有任务提交,收到第一个任务,将进群当中所有的资源全部给第一个任务,如果此时收到第二个任务,就会将第一个任务的资源划分一点出来给第二个任务,让第二个任务也可以执行,以此类推,保证每一个任务都可以公平地一起执行

      一般调度器不改


    Yarn常用参数设置

    • yarn.nodemanager.resource.memory-mb
      定义每台机器的内存使用大小,默认8192M

    • yarn.nodemanager.resource.cpu-vcores
      定义每台机器的虚拟内核使用大小,默认8个

    • yarn.nodemanager.vmem-pmem-ratio 2.1
      定义交换区空间可以使用的大小(交换区空间就是讲一块硬盘拿出来做内存使用)
      这里指定的是nodemanager的n内存的2.1倍


    tips

    yarn的发展历程以及详细介绍:https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/

  • 相关阅读:
    离职or not 离职
    RelativeLayout总结
    MVC中小试了一下Jquery
    tricks about andor in python
    【回旋数字】c语言实现
    退役?
    HDU4546 比赛难度
    WEB页面导出为EXCEL文档的方法
    开始→运行→命令
    控制Repeater显示列数
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772484.html
Copyright © 2011-2022 走看看