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. 【three.js第七课】鼠标点击事件和键盘按键事件的使用

    当我们使用鼠标操作three.js渲染出的对象时,不仅仅只是仅限用鼠标对场景的放大.缩小.旋转而已,还有鼠标左键.右键的点击以及键盘各种按键等等的事件.我们需要捕获这些事件,并在这些事件的方法里进行相 ...

  2. D - Yet Another Monster Killing Problem

    题目连接: https://codeforces.com/contest/1257/problem/D 题目大意: n个怪兽,m个英雄,每个怪兽有一定的能力值,每个英雄有一定的能力值和一定的耐力值.耐 ...

  3. [数据库]Mysql蠕虫复制增加数据

    将查询出来的数据插入到指定表中,例: 将查询user表数据添加到user表中,数据会成倍增加 insert into user(uname,pwd) select uname,pwd from use ...

  4. 《闲扯Redis五》List数据类型底层之quicklist

    一.前言 Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要. ...

  5. 不借助多余参数也可交换两个参数(c++,swap函数)

    利用a^a=0异或属性 [示例代码] #include<stdio.h> void data_swap(int &a,int &b){ a = a ^ b; b = a ^ ...

  6. SringMVC入门程序

    Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架 1.Spring优点 轻量级,简单易学 高效 , 基于请求响应的MVC框架 与Spring兼 ...

  7. python 获取的json字符串取值

    获取到的json字符串,然后对其取值 {u'result': {u'10.10.10.100': {u'status': u'OK', u'msg': u"{'listen': {'': s ...

  8. Mybatis源码详解系列(四)--你不知道的Mybatis用法和细节

    简介 这是 Mybatis 系列博客的第四篇,我本来打算详细讲解 mybatis 的配置.映射器.动态 sql 等,但Mybatis官方中文文档对这部分内容的介绍已经足够详细了,有需要的可以直接参考. ...

  9. Apache jena SPARQL endpoint及推理

    一.Apache Jena简介 Apache Jena(后文简称Jena),是一个开源的Java语义网框架(open source Semantic Web Framework for Java),用 ...

  10. Java集合linkdList

    LinkedList特有功能: A:添加功能 public void addFitst(Object e) public void addLast(Object e) B:获取功能 public Ob ...