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/

【Hadoop离线基础总结】Yarn集群的资源调度的更多相关文章

  1. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  2. Hadoop 系列(二)—— 集群资源管理器 YARN

    一.hadoop yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统.用户可以将各种服务框架部 ...

  3. 【Hadoop离线基础总结】oozie的安装部署与使用

    目录 简单介绍 概述 架构 安装部署 1.修改core-site.xml 2.上传oozie的安装包并解压 3.解压hadooplibs到与oozie平行的目录 4.创建libext目录,并拷贝依赖包 ...

  4. Hadoop(四)HDFS集群详解

    前言 前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群.接下来这篇我详细的分享一下HDFS. HDFS前言: 设计思想:(分而治之)将大文件.大 ...

  5. Apache Hadoop 2.9.2 的集群管理之服役和退役

    Apache Hadoop 2.9.2 的集群管理之服役和退役 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 随着公司业务的发展,客户量越来越多,产生的日志自然也就越来越大来,可能 ...

  6. YARN集群的mapreduce测试(四)

    将手机用户使用流量的数据进行分组,排序: 测试准备: 首先同步时间,然后master先开启hdfs集群,再开启yarn集群:用jps查看: master上: 先有NameNode.SecondaryN ...

  7. Hadoop 2.7.3 分布式集群安装

    1. 集群规划: 192.168.1.252 palo252 Namenode+Datanode 192.168.1.253 palo253 YarnManager+Datanode+Secondar ...

  8. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  9. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

随机推荐

  1. MVC学习的心路历程

    2020/4/17 之前接触过三层架构,但是没有接触过mvc,所以有点蒙,所以现在在一步步构建思路. 1.了解MVC的发展,做一个简单的项目.

  2. Largest Rectangle in a Histogram 杭电1506

    题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=1506 Problem Description A histogram is a polygon co ...

  3. sudo -s 命令 [oh-my-zsh] 提示检测到不安全目录

    运行sudo -s 命令时,[oh-my-zsh] 冒出下面一大堆提示: [oh-my-zsh] Insecure completion-dependent directories detected: ...

  4. MVC-过滤器-Action

    四个方法执行顺序是OnActionExecuting——>OnActionExecuted——>OnResultExecuting——>OnResultExecuted. demo代 ...

  5. react: typescript system params method optimize

    import * as _ from "lodash"; import paramCache from "../common/param-cache" impo ...

  6. 加不加 synchronized 有什么区别?

    今天一起来认识认识 synchronized 这个一面试就会被提到的关键字.这一篇不会讲太多理论,主要先熟悉熟悉一下最简单的用法.只讨论一个问题:方法没用 synchronized 和用了 synch ...

  7. coding++:@DisallowConcurrentExecution 注解的作用

    Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞. 在Spring中这时需要设置concurrent ...

  8. 杂园日记-获取URL参数

    function getUrlParams(name, url){ var locationUrl = window.location.search; if(url){ var s =url.inde ...

  9. async,await与task.wait()或task.Result的区别

    你是否曾经与我一样不理解async,await与task.wait()或者task.Result的区别? 接下来,一个Demo让你看出他们之间的区别. static void Main(string[ ...

  10. 不论是 Basic Auth 还是 Digest Auth,都会有 Authorization 字段

    GET /dir/index.html HTTP/1.0 Host: localhost Authorization: Digest username="Mufasa", real ...