Hadoop 文档

General

Common

HDFS

MapReduce

MapReduce REST APIs

YARN

YARN REST APIs

YARN Service

Submarine

Hadoop Compatible File Systems

Auth

Tools

Reference

Configuration

总览

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

概要

该命令的概要是:

    纱罐<HADOOP_HOME> / share / hadoop / mapreduce / hadoop-mapreduce-client-jobclient- <hadoop-version> .jar NNloadGenerator [选项]

选项包括:

  • -readProbability 读取概率

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

  • -writeProbability 写入概率

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

  • -root 测试空间的根

    测试空间的根;默认值为/ testLoadSpace。

  • -maxDelayBetweenOps maxDelayBetweenOpsInMillis

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

  • -numOfThreads numOfThreads

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

  • -elapsedTime elapsedTimeInSecs

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

  • -startTime startTimeInMillis

    所有辅助线程开始运行的时间。默认情况下,主程序开始运行10秒后,如果运行了多个Load Generator,则会形成障碍。

  • -seed 种子

    随机生成器种子,用于在单线程中运行时重复向NameNode发出请求;默认是当前时间。

命令行参数解析之后,负载生成器将遍历测试空间,并构建一个包含所有目录的表以及该测试空间中所有文件的另一个表。然后,它一直等到开始时间以生成用户指定的工作线程数。每个线程将请求流发送到NameNode。在每次迭代时,它首先根据用户指定的读写概率决定是要读取文件,创建文件还是列出目录。列出概率等于1读概率-写概率。读取时,它将在测试空间中随机选择一个文件并读取整个文件。编写时,它会在测试空间中随机选择一个目录并在其中创建文件。

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

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

测试空间人口

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

结构生成器

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

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

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

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

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

该命令的概要是:

    纱罐<HADOOP_HOME> / share / hadoop / mapreduce / hadoop-mapreduce-client-jobclient- <hadoop-version> .jar NNstructureGenerator [选项]

选项包括:

  • -maxDepth maxDepth

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

  • -minWidth minWidth

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

  • -maxWidth maxWidth

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

  • -numOfFiles #OfFiles

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

  • -avgFileSize avgFileSizeInBlocks

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

  • -outDir outDir

    输出目录; 默认为当前目录。

  • -seed 种子

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

资料产生器

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

该命令的概要是:

    纱罐<HADOOP_HOME> / share / hadoop / mapreduce / hadoop-mapreduce-client-jobclient- <hadoop-version> .jar NNdataGenerator [选项]

选项包括:

  • -inDir inDir

    输入用于存储目录/文件结构的目录名称;默认为当前目录。

  • -root 测试空间的根

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