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-runner.xml文件内容如下:

<configuration>

  <!-- SLSRunner configuration -->
  <property>
    <name>yarn.sls.runner.pool.size</name>
    <value>100</value>
  </property>
  
  <!-- Nodes configuration -->
  <property>
    <name>yarn.sls.nm.memory.mb</name>
    <value>10240</value>
  </property>
  <property>
    <name>yarn.sls.nm.vcores</name>
    <value>10</value>
  </property>
  <property>
    <name>yarn.sls.nm.heartbeat.interval.ms</name>
    <value>1000</value>
  </property>
  
  <!-- Apps configuration -->
  <property>
    <name>yarn.sls.am.heartbeat.interval.ms</name>
    <value>1000</value>
  </property>
  <property>
    <name>yarn.sls.am.type.mapreduce</name>
    <value>org.apache.hadoop.yarn.sls.appmaster.MRAMSimulator</value>
  </property>

  <!-- Containers configuration -->
  <property>
    <name>yarn.sls.container.memory.mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>yarn.sls.container.vcores</name>
    <value>1</value>
  </property>

  <!--  metrics  -->
  <property>
    <name>yarn.sls.metrics.switch</name>
    <value>ON</value>
  </property>
  <property>
    <name>yarn.sls.metrics.web.address.port</name>
    <value>10001</value>
  </property>
  <property>
    <name>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler</name>
    <value>org.apache.hadoop.yarn.sls.scheduler.FifoSchedulerMetrics</value>
  </property>
  <property>
    <name>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</name>
    <value>org.apache.hadoop.yarn.sls.scheduler.FairSchedulerMetrics</value>
  </property>
  <property>
    <name>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</name>
    <value>org.apache.hadoop.yarn.sls.scheduler.CapacitySchedulerMetrics</value>
  </property>
  
</configuration>
  • yarn.sls.runner.pool.size

    The simulator uses a thread pool to simulate the NM and AM running , and this parameter specifies the number of threads in the pool.

  • yarn.sls.nm.memory.mb

    The total memory for each NMSimulator.

  • yarn.sls.nm.vcores

    The total vCores for each NMSimulator.

  • yarn.sls.nm.heartbeat.interval.ms

    The heartbeat interval for each NMSimulator.

  • yarn.sls.am.heartbeat.interval.ms

    The heartbeat interval for each AMSimulator.

  • yarn.sls.am.type.mapreduce

    The AMSimulator implementation for MapReduce-like applications. Users can specify implementations for other type of applications.

  • yarn.sls.container.memory.mb

    The memory required for each container simulator.

  • yarn.sls.container.vcores

    The vCores required for each container simulator.

  • yarn.sls.runner.metrics.switch

    The simulator introduces Metrics to measure the behaviors of critical components and operations. This field specifies whether we open (ON) or close (OFF) the Metrics running.

  • yarn.sls.metrics.web.address.port

    The port used by simulator to provide real-time tracking. The default value is 10001.

  • org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler

    The implementation of scheduler metrics of Fifo Scheduler.

  • org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler

    The implementation of scheduler metrics of Fair Scheduler.

  • org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

    The implementation of scheduler metrics of Capacity Scheduler.

然后使用apache rumen对jobhistory文件进行解析,生成json格式文件以便sls解析:

hadoop jar hadoop-rumen-2.3.0.jar org.apache.hadoop.tools.rumen.TraceBuilder -write-job-trace file:///home/user/job-trace.json file:///home/user/topology.output file:///home/user/logs/history/done

file:///home/user/logs/history/done 用户集群存放运行完成jobhistory的目录,一般在hdfs里,可以通过hadoop fs -get取到本地目录

file:///home/user/job-trace.json file:///home/user/topology.output 生成的sls要读取的文件

运行模拟器

slsrun.sh --input-rumen=/home/user/  --output-dir=/usr/sls/sample-result

--input-rumen 本例就是file:///home/user/job-trace.json file:///home/user/topology.output 对应的路径

如果运行报错:

java.lang.NullPointerException
at org.apache.hadoop.yarn.sls.web.SLSWebApp.<init>(SLSWebApp.java:82)
at

在https://issues.apache.org/jira/browse/YARN-1021中查看comment,解决方法如下:

bin/slsrun.sh --input-sls=sls-file/sls-jobs.json --output-dir=output_sls --nodes=sls-file/sls-nodes.json

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

时间: 2024-08-07 02:24:39

Yarn Scheduler Load Simulator YARN调度负载模拟器的相关文章

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

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

十六:mapreduce程序在yarn集群中的调度过程

mapreduce程序在yarn集群中的调度过程: 1.客户端想ResouceManager提交一个job作业,申请运行一个MR的程序,RPC调用 2.ResourceManager返回一个由创建的jobid目录. 3.在HDFS该目录下有一个以jobid命名的目录并,写入job.xml和job分片数据,job.jar,jobConfinger 4.通知RM,job的资源文件提交完毕. 5.初始化一个任务 然后放到队列中去 6.nodemanager 和ResouceManager 保持心跳进行

理解YARN Scheduler

介绍 在YARN中,资源调度器(Scheduler)是ResourceManager中的重要组件,主要负责对整个集群(CPU,内存)的资源进行分配和调度,分配以资源Container的形式分发到各个应用程序中(如MapReduce作业),应用程序与资源所在节点的NodeManager协作利用Container完成具体的任务(如Reduce Task). Scheduler以可插拔的形式来配置,框架默认提供了三种Scheduler: 1)FIFO Scheduler: 先进先出即先来后到.作业提交

cdh之调整YARN(调优yarn 生产必做优化项)004

2019/3/26 星期二调整YARN本主题仅适用于YARN群集,并介绍如何为群集调整和优化YARN.注意:下载Cloudera YARN调整电子表格以帮助计算YARN配置. 有关简短视频概述,请参阅调整YARN应用程序.概观此概述提供YARN群集的抽象描述和YARN调整的目标. YARN群集由主机组成. 主机提供内存和CPU资源. vcore或虚拟核心是主机CPU的使用份额. 调整YARN主要包括在工作主机上最佳地定义容器. 您可以将容器视为由内存和vcores组成的矩形图. 容器执行任务.

转 如何使用Windows Media Load Simulator进行Windows Media服务器性能测试和监控

Windows Media Load Simulator(WMLS)有两个主要的用途:作为极值或者压力测试工具和在线监视器.   1   极值和压力压力测试:你能够在达到期望的极值压力条件下测试离线的服务器,并且分析结果.之后,逐渐增加压力并注意服务器的性能表现和流媒体的播放质量,逐渐达到服务器容量的极限.你能够使用测试结果来设置服务器的最大客户连接数.你可以使用WMS的管理界面来设置最大客户数,最大带宽占用和最大的文件比特率.        测试结果会典型的揭示服务器的问题,CPU,内存或者硬

&lt;YARN&gt;&lt;MRv2&gt;&lt;Spark on YARN&gt;

MRv1 VS MRv2 MRv1: - JobTracker: 资源管理 & 作业控制- 每个作业由一个JobInProgress控制,每个任务由一个TaskInProgress控制.由于每个任务可能有多个运行实例,因此,TaskInProgress实际管理了多个运行实例TaskAttempt,每个运行实例可能运行了一个MapTask或ReduceTask.每个Map/Reduce Task会通过RPC协议将状态汇报给TaskTracker,再由TaskTracker进一步汇报给JobTrac

unable to boot the simulator,无法启动模拟器已解决

突然模拟器报错:unable to boot the simulator(无法启动模拟器) 试了好几种解决办法,删除所有的模拟器重启以后再添加,删除钥匙串登陆中的证书,重新安装Xcode都不行 最后通过这种方式解决了 重新启动mac 进度条加载的时候一直按command+R进入设置界面,打开界面的左上角实用工具里面的终端,输入csrutil disable回车 然后点击左上角的重新启动mac. 启动以后进入终端输入:sudo chmod 0777 /private/tmp  然后回车 OK啦,模

Yarn 3.1.1 - Yarn 服务 - 总览

YARN 服务 总览 Yarn 服务框架为在 Yarn 原生环境里长时间运行的服务,提供了一流的支持和接口.简言之,它扮演了容器编排系统的角色,统一管理 Yarn 上运行的容器化服务.它同时支持 Docker 容器和传统基于进程的 Yarn 容器. 本框架的职责包括配置实现和挂载,生命周期管理,如在 Yarn 上启动/停止/删除服务,服务组件的启停/伸缩,服务的滚动升级. Yarn 服务框架主要包括以下组件: 一个运行在 Yarn 上的核心框架(ApplicationMaster),担任容器编排

Yarn 3.1.1 - Yarn 服务 - 快速开始

快速开始 本文描述了如何用 Yarn 服务框架在 Yarn 上部署服务. 配置和启动 HDFS 和 Yarn 组件 首先启动 HDFS 和 Yarn 的各个组件.为启用 Yarn 服务框架,添加以下参数到 yarn-site.xml 文件中并重启 ResourceManager,或在 ResourceManager 启动前就设置号.该参数是启用 Yarn 服务框架的 CLI 和 REST API 所必需的. <property> <description> 在 ResourceMa