Yarn调度器负载模拟器——Yarn Scheduler Load Simulator (SLS)

一、概述:

Yarn调度器有许多实现,如Fifo, Capacity和Fair schedulers等。与其同时,正在进行一些优化措施来提高调度器在不同负载和工作场景下的性能。每个调度器都有自己的特性,调度决策受许多因素影响,如公平行、计算能力保证和资源的可靠性等。在部署一个调度算法到生产集群之前,评估一个调度算法是非常重要的,不幸的是,评估一个调度算法是不那么容易的,评估一个真正的集群是非常耗费时间和成本的,并且很难找到一个足够大的集群用来评测。所以,一个可以模拟在这种工作场景和负载下调度器的性能表现的模拟器是非常有用的。

Yarn模拟器可以在一台机器上模拟一个大型的集群和大量的应用负载,模拟器对于那些希望深入研究yarn的人员来说是非常宝贵的,因为它提供了一个工具:一个新的调度器原型、预测它的行为和性能表现,从而帮助他们快速创新。

Yarn模拟器通过在ResourceManager的jvm中模拟出NodeManagers和ApplicationMasters并处理和分发 NM/AM事件来去除网络因素的影响。为了trace调度器的行为和性能,在真正的调度器外层包裹了一个wrapper。

集群和应用负载可以从配置文件中加载,这些配置文件可以利用 Apache
Rumen 从 job history files中直接生成。

模拟器在执行会产生实时的指标,如下所示:

  1. 整个集群和每个队列的资源利用率,可以用来配置集群和队列的容量;
  2. 详细的用模拟出来的时间记录的应用程序执行记录,可以用来分析、了解和验证程序的行为(个别job的周转时间、吞吐量、公平性和计算能力保证等);
  3. 调度算法的一些关键指标,如:每个调度操作花费的时间(分配、处理等等),开发者可以用来找出影响性能和可伸缩性的代码。

二、设计目标:

  1. 不用真正的集群和真正的job trace来检查调度器
  2. 可以模拟真实的负载

三、结构:

下图说明了模拟器的实现架构:

模拟器获取负载的描述,并获取到集群和应用的信息。对每个NM and AM,模拟器构造一个模拟器来模拟它们的运行,所有的NM and AM模拟器都在一个线程池中运行。模拟器共用RM,并在调度器外包裹一层wrapper,这个Scheduler
Wrapper可以跟踪Scheduler并产生一些日志,模拟器产生的日志可以用作以后的分析。

Yarn调度器负载模拟器——Yarn Scheduler Load Simulator (SLS),布布扣,bubuko.com

时间: 2024-10-12 19:49:26

Yarn调度器负载模拟器——Yarn Scheduler Load Simulator (SLS)的相关文章

Yarn Scheduler Load Simulator YARN调度负载模拟器

项目起源是因为有人希望有个模拟环境来模拟公平调度器和容量调度器,以便合理配置调度器,降低生产环境出问题的风险,详见https://issues.apache.org/jira/browse/YARN-1021.之后在hadoop2.3.0就增加了这个工具. 首先设定环境变量: export HADOOP_HOME=/usr/hadoop-2.3.0 export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop #此目录放置sls-runner.xml文件 sls-ru

Yarn 调度器Scheduler详解

理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资源的就是Scheduler.其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景.为此,Yarn提供了多种调度器和可配置的策略供我们选择. 一.调度器的选择 在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairS ched

Hadoop YARN 调度器(scheduler) —— 资源调度策略

本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了一些博客,发现写得最清楚的还是<Hadoop权威指南>,以下内容主要来自<Hadoop The Definitive Guide> 4th Edition 2015.3. Hadoop YARN Scheduler 三个调度器 YARN提供了CapacityScheduler, Fai

Hadoop Yarn调度器的选择和使用

一.引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色.在讨论其构造器之前先简单了解一下Yarn的架构.上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负责整个集群中包括内存.CPU等资源的管理:ApplicationMaster负责应用程序在整个生命周期的任务调度:NodeManager负责本节点上资源的供给和隔离:Container可以抽象的看成是运行任务的一个容器.本文讨论的调度器是在ResourceManager组建中进行调度的,接

Hadoop 三大调度器分析

如要转载,请注上作者和出处. 须知: 我们下载的是hadoop-2.7.3-src 源码. 这个版本默认调度器是Capacity调度器. 在2.0.2-alpha版本的时候,有人汇报了一个fifo调度器的bug,社区把默认调度器从原来的fifo切换成capacity了. 在Hadoop中,调度器是一个可插拔的模块,用户可以根据自己的实际应用要求设计调度器,然后在配置文件中指定相应的调度器,这样,当Hadoop集群启动时,便会加载该调度器.当前Hadoop自带了几种调度器,分别是FIFO(默认调度

Hadoop-2.2.0中文文档—— MapReduce 下一代 -- 公平调度器

目的 此文档描述了 FairScheduler, Hadoop 的一个可插入式的调度器,允许 YARN 应用在一个大集群中公平地共享资源. 简介 公平调度是一种分配资源给应用的方法,以致到最后,平均上所有应用获得相等的资源.  Hadoop NextGen 能够调度多种类型的资源.默认的, Fair Scheduler 仅以内存为基础作公平调度决策.可以用Ghodsi 等开发的 Dominant Resource Fairness 概念配置调度内存和CPU.仅有一个应用运行时,这个应用使用整个集

Linux调度器 - deadline调度器

一.概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应.在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序.换句话说,当系统收到某个请求,会做出相应的动作以响应该请求,想要保证正确地响应该请求,一方面逻辑结果要正确,更重要的是需要在最后期限(deadline)内作出响应.如果系统未能在最后期限内进行响应,那么该系统就会产生错误或者缺陷.在多任务操作系统中(如Linux),实时调度器(realtime scheduler)负责协调实时

Quartz与Spring集成——启动调度器

前言 在<Quartz与Spring集成--创建调度器>一文中介绍了调度器的创建过程,本文将分析其启动过程.熟悉Spring原理的人都知道AbstractApplicationContext的refresh方法的重要性,在refresh方法中调用了finishRefresh方法,最后会调用到SchedulerFactoryBean的start方法,其调用栈如图1所示. 图1 SchedulerFactoryBean的start方法的调用栈 根据图1的内容,我们知道spring容器初始化完毕的最

Yarn 组件的指挥部 – 调度器Scheduler

linux基础 为hadoop集群的搭建扫清了障碍,也为内存的管理,文件系统的管理扫清了障碍 接着到Hadoop的阶段,首先做集群的安装,深入到使用这两个核心的组件,分布式文件系统HDFS,解决大量数据怎么存储的问题,第二个就是分布式计算MapReduce.MapReduce的包含Yarn和MapReduce,随着集群规模的扩大,资源的管理必要用一个单独的组件Yarn来管理,程序员只要关注如何来写程序就好了. 然后讲了Zookeeper: 轻量级组件,往大数据集群里导数据的,比如Sqoop和Fl