NNBench执行过程跟参数说明

NNBench执行过程和参数说明

需求:

基于NNBench测namenode的负载

测试参数说明:

-operation 
-maps mapper数
-reduces reducer数
-startTime 开始时间
-blockSize block size
-bytesToWrite 文件写入字节数单位为b
-bytesPerChecksum  条件blockSize % bytesPerChecksum == 0
-numberOfFiles 生成的文件数
-replicationFactorPerFile 
-baseDir 根路径
-readFileAfterOpen

 执行过程:

0.输入检查是否合法
1.cleanupBeforeTestrun 删除已有的基于-baseDir的数据
2.createControlFiles 生成控制文件基于baseDir/CONTROL_DIR_NAME/NNBench_Controlfile_i(numberOfMaps)
3.执行mapper的时候基于controlfile生成mapper个数,每个mapper基于operation 进行相应的操作,如doCreateWriteOp每个mapper又基于numberOfFiles生成numberOfFiles个文件
此处针对OP_CREATE_WRITE有个bug,那么就是写的文件基于host的,那么当一个计算节点启动多个mapper的时候就会重复写,也就是并发写,因此此处是个小缺陷
4.执行reducer时写入统计的信息
5.对写入的统计信息做分析出result

举例:

bin/hadoop jar share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient-2.3.0-cdh5.0.0-tests.jar nnbench -operation create_write -maps 4 -reduces 2 -bytesToWrite 1 -numberOfFiles 2 -replicationFactorPerFile 3 -readFileAfterOpen true -baseDir /benchmarks/NNBench