HDFS测试

HDFS基准测试

其中 HDFS 基准测试包括:
( 1 )dfsio基准测试 HDFS I/O 读写性能
( 2 )slive基准测试NameNode内部操作的性能
( 3 )scan 基准测试MapReduce作业访问 HDFS 的 I/O 性能
( 4 )shuffle 基准测试 shuffle 阶段性能
( 5 )compression 基准测试MapReduce作业中间结果和最终结果的压缩性能
( 6 )gridmix-V3 基准测试集群吞吐率

SliveTest

SliveTest位于hadoop的test包中,代码结构清晰,其主要功能是通过大量map制造多种rpc请求,检测Namenode的性能。我们可以设定map数量,每个map发起的rpc请求次数,每一种rpc操作占总操作的百分比,以及读写数据量、block size等配置。
下面列出slive可以调用的rpc操作种类:
ls 列出路径下所有文件和目录
append 追加写文件操作
create 创建文件操作
delete 删除文件操作
mkdir 创建目录操作
rename 重命名文件操作
read 读取文件内容操作

默认情况下,每个map有1000次操作,7种操作均匀的随机出现。slivetest运行时相关参数如下表所示:
maps 一共运行多少个mapper,默认值为10
ops 每个map跑多少个操作,默认值为1000
duration 每个map task的持续时间,默认值为MAX_INT,也就是无限制
exitOnError 遇到第一个Error是否要立即退出,默认不退出
files 最大生成文件数,默认为10
dirSize 每个文件夹最多允许生成多少个文件,默认为32
baseDir SliveTest运行后默认存放的文件根目录,默认为“/test/slive”
resFile 结果文件名,默认为“part-0000”
replication 备份数,可设置最小,最大备份数,默认为3
blockSize 设置文件block大小,默认为64M(64*1048576)
readSize 读入大小可设置为最小值,最大值形式,例如“-readSize 100,1000”,默认无限制(min=max=MAX_LONG=read entire file)
writeSize 写入大小,最小,最大形式,默认等于blockSize(min=max=blocksize)
sleep 在不同次操作之间随机的插入sleep,这个参数用于定义sleep的时间范围,设置同样是最小,最大,单位是毫秒,默认为0)
appendSize 追加写大小,最小,最大形式,默认等于blockSize(min=max=blocksize)
seed 随机数种子
cleanup 执行完所有操作并报告之后,清理目录
queue 指定队列名,默认为“default”
packetSize 指定写入的包大小
ls 指定ls操作占总操作数的百分比
append 指定append操作占总操作数的百分比
create 指定create操作占总操作数的百分比
delete 指定delete操作占总操作数的百分比
mkdir 指定mkdir操作占总操作数的百分比
rename 指定rename操作占总操作数的百分比
read 指定read操作占总操作数的百分比

SliveTest可以给Namenode带来很大的压力,用来做极限情况下的压力测试非常合适。

TestDFSIO

TestDFSIO用于测试HDFS的IO性能,使用一个MapReduce作业来并发地执行读写操作,每个map任务用于读或写每个文件,map的输出用于收集与处理文件相关的统计信息,reduce用于累积统计信息,并产生summary。
TestDFSIO的条件参数如下
Usage: TestDFSIO [genericOptions] -read | -write | -append | -clean [-nrFiles N] [-fileSize Size[B|KB|MB|GB|TB]] [-resFile resultFileName]

HDFS一致性测试

HDFS 的数据一致性并不复杂

使用 “write-once-read-many”的策略,也就是说HDFS在文件创建、写入、关闭中文件是不能被修改的,而且目前HDFS仅支持单用户写,也就是说在文件写入完成后不会改变,仅将该文件的副本复制到其他节点即可。
对一致性有影响的操作仅仅只有append和复制副本,此时会影响数据的一致性,但不支持在文件的任意部分修改。

那么这个测试点关注的部分是???

经过网上搜集资料,数据一致性测试方法是

在不经过追加操作的前提下,
1.副本与副本的一致性
2.副本与NN之间信息的一致性。

HDFS高可用测试

高可用性的测试,主要测试的重点是 集群能否正确的探测到当机和恢复数据的准确性
容灾模块功能测试 容灾模块是保证高可用性的要点。经过多次测试后,达到测试目标。
借助协调系统完成高可用行(zookeeper)

条件 测试用例及说明 预期结果
开启容灾选项 断掉一台 DataNode 数据可用性不变
未开启容灾功能 断掉一台 NameNode 集群崩溃数据不可用
开启容灾功能 断掉一台 NameNode 数据可用性不变
开启选举 断掉全部 NameNode 集群短暂崩溃,然后恢复使用
开启容灾选项 Datanode 全部断掉 数据不可用,返回错误
开启容灾选项 接入一个 Datanode 数据可用性恢复

你可能感兴趣的:(HADOOP)