Hadoop3.2.0 (合成负载发生器指南) Synthetic Load Generator Guide

 

概观

合成负载生成器(SLG)是用于在不同客户端负载下测试NameNode行为的工具。用户可以通过指定读取和写入的概率来生成读取,写入和列表请求的不同混合。用户通过调整工作线程数量和操作之间的延迟参数来控制负载强度。在负载生成器运行时,用户可以分析和监视NameNode的运行。当负载生成器退出时,它会输出一些NameNode统计信息,例如每种操作的平均执行时间和NameNode吞吐量。

概要

该命令的概要是:

yarn jar <HADOOP_HOME>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<hadoop-version>.jar NNloadGenerator [options]

选项包括:

  • -readProbability 读取概率

    读操作的概率; 默认值为0.3333。

  • -writeProbability 写入概率

    写操作的概率; 默认值为0.3333。

  • -root 测试  root  空间

    测试空间的根源; 默认是/ testLoadSpace。

  • -maxDelayBetweenOps maxDelayBetweenOpsInMillis

    线程中两个连续操作之间的最大延迟; 默认值为0表示没有延迟。

  • -numOfThreads numOfThreads

    产生的线程数; 默认值是200。

  • -elapsedTime elapsedTimeInSecs

    程序运行的秒数; 值为零表示程序永远运行。默认值为0。

  • -startTime startTimeInMillis

    所有工作线程开始运行的时间。默认情况下,主程序开始运行后10秒。如果运行多个负载生成器,则会形成屏障。

  • -seed 种子

    随机生成器种子,用于在使用单个线程运行时重复对NameNode的请求; 默认是当前时间。

在命令行参数解析之后,负载生成器遍历测试空间并构建所有目录的表和测试空间中所有文件的另一个表。然后等待直到开始时间产生用户指定的工作线程数。每个线程都向NameNode发送请求流。在每次迭代时,它首先决定是否要读取文件,创建文件,或者按照用户指定的读取和写入概率列出目录。列表概率等于1读取概率写入概率。在阅读时,它会随机选择测试空间中的文件并读取整个文件。在编写时,它会随机选择测试空间中的目录并在那里创建一个文件。

要避免两个具有相同负载生成器的线程或两个不同的负载生成器创建相同的文件,文件名由当前计算机的主机名和线程ID组成。文件的长度遵循高斯分布,平均大小为2个块,标准差为1.新文件用字节'a'填充。为避免测试空间无限增长,文件创建完成后立即删除该文件。在列出时,它会随机选择测试空间中的目录并列出其内容。

操作完成后,如果指定的最大延迟不为零,则线程会在[0,maxDelayBetweenOps]范围内暂停一段随机时间。传递指定的经过时间后,所有线程都将停止。在退出之前,程序打印每种NameNode操作的平均执行次数,以及每秒NameNode服务的请求数。

Test Space Population

用户需要在运行负载生成器之前填充测试空间。结构生成器生成随机测试空间结构,数据生成器在Hadoop分布式文件系统中创建测试空间的文件和目录。

结构生成器

此工具生成具有以下约束的随机命名空间结构:

  1. 目录可以具有的子目录数是[minWidth,maxWidth]中的随机数。

  2. 每个子目录的最大深度是一个随机数[2 * maxDepth / 3,maxDepth]。

  3. 文件随机放置在叶子目录中。每个文件的大小遵循高斯分布,平均大小为1个块,标准差为1。

生成的命名空间结构由输出目录中的两个文件描述。第一个文件的每一行都包含叶子目录的全名。第二个文件的每一行包含文件的全名及其大小,以空格分隔。

该命令的概要是:

yarn jar <HADOOP_HOME>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<hadoop-version>.jar NNstructureGenerator [options]

选项包括:

  • -maxDepth maxDepth

    目录树的最大深度; 默认值为5。

  • -minWidth minWidth

    每个目录的最小子目录数; 默认值为1。

  • -maxWidth maxWidth

    每个目录的最大子目录数; 默认值为5。

  • -numOfFiles #OfFiles

    测试空间中的文件总数; 默认值是10。

  • -avgFileSize avgFileSizeInBlocks

    块的平均大小; 默认值为1。

  • -outDir outDir

    输出目录; default是当前目录。

  • -seed 种子

    随机数发生器种子; 默认是当前时间。

 

数据生成器

此工具从输入目录中读取目录结构和文件结构,并在Hadoop分布式文件系统中创建命名空间。所有文件都填充字节'a'。

该命令的概要是:

yarn jar <HADOOP_HOME>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<hadoop-version>.jar NNdataGenerator [options]

选项包括:

  • -inDir inDir

    输入目录/文件结构的目录名称; default是当前目录。

  • -root 测试空间根

    新命名空间将放在其下的根目录的名称; 默认为“/ testLoadSpace”。

 

原文链接: https://hadoop.apache.org/docs/r3.2.0/

展开阅读全文

没有更多推荐了,返回首页