hadoop基准测试

一、测试条件

集群完全安装配置后,应立即开始基准测试。基准测试时集群里不应该运行其他一切任务。

二、测试目标

1. 硬盘故障:新系统最常见的故障。可以通过运行高强度的IO基准测试程序集中测试。例如TestDFSIO

2. MapReduce的性能

三、测试方法

1TestDFSIO基准测试HDFS

测试顺序应该是先写测试后读测试

写测试:

使用10map任务写10个文件,每个500m

hadoop jar $HADOOP_HOME/hadoop-test-*.jar TestDFSIO -write -nrFiles 10  -fileSize 1000

在运行的最后,结果被写入控制台并记录到当前路径TestDFSIO_results.log 。

数据默认写入 /benchmarks/TestDFSIO目录下

读测试:

hadoop jar $HADOOP_HOME/hadoop-test-*.jar TestDFSIO -read-nrFiles 10  -fileSize 1000

清除测试数据:

hadoop jar $HADOOP_HOME/hadoop-test-*.jar TestDFSIO -clean

2、用sort排序测试MapReduce

Hadoop自带一个部分排序的程序。这对测试整个MapReduce系统很有用,因为整个输入数据集都会通过洗牌传输至reducer。一共三个步骤:生成一些随机的数据,执行排序,然后验证结果。
       首先我们通过使用RandomWriter生成一些随机的数据。它以每个节点10map的方式运行一个MapReduce作业,并且每一个map生成近似10GB的随机二进制数据,带有不同长度的键和值。

hadoop jar hadoop-examples-0.20.2-cdh3u1.jar randomwriter random-data

 

也可以指定配置如多少个map,每个map生成数据大小等信息

如生成32G数据可以如下配置,

执行命令如下:hadoop-0.20.2-cdh3u4$ hadoop jar hadoop-examples-0.20.2-cdh3u4.jar randomwriter -conf ./random_conf.xml random32

 

<configuration>
<property>
  <name>test.randomwriter.maps_per_host</name>
  <value>32</value>
</property>

<property>
</property>
  <value>32</value>
  <name>test.randomwriter.maps_per_host</name>
<property>

  <name>test.randomwrite.bytes_per_map</name>
  <value>1073741824</value>
</property>

<property>
  <name>test.randomwrite.min_key</name>
  <value>10</value>
</property>

<property>
  <name>test.randomwrite.max_key</name>
  <value>1000</value>
</property>

<property>
  <name>test.randomwrite.min_value</name>
  <value>0</value>
</property>

<property>
  <name>test.randomwrite.max_value</name>
  <value>20000</value>
</property>


</configuration>

 

选项的默认值

Name

Default Value

Description

test.randomwriter.maps_per_host

10

Number of maps/host

test.randomwrite.bytes_per_map

1073741824

Number of bytes written/map

test.randomwrite.min_key

10

minimum size of the key in bytes

test.randomwrite.max_key

1000

maximum size of the key in bytes

test.randomwrite.min_value

0

minimum size of the value

test.randomwrite.max_value

20000

maximum size of the value

 

1. 用TestDFSIO基准测试HDFS
Hadoop带有一些基准测试程序,基准测试程序被打包在测试程序JAR文件中。其中,TestDFSIO用来测试HDFS的I/O性能。大多数新系统硬件的故障都是硬盘故障。通过运行I/O密集型基准测试,可以对集群的使用进行热身。它通过使用MapReduce作业来完成测试作为并行读写文件的便捷方法。每个文件的读写都在单独的map任务中进行,并且map的输出可以用来收集统计刚刚处理过的文件。这个统计数据在reduce中累加起来得出一个汇总。以下命令写了10个文件,每个1000MB:
[root@slave1 hadoop-0.20.2]# hadoop jar hadoop-0.20.2-test.jar TestDFSIO -write -nrFiles 10 -fileSize 1000

以下内容是TestDFSIO基准测试的运行结果,结果被写入控制台并同时记录在一个本地文件。

一、背景
 
由于以前没有细看Hadoop提供的测试工具,只是在关注hadoop本身的内容,所以很多的性能测试都忽略了。最近花了一周的时间准备做个性能测试,但是都是采用自己的方法得出的抽象值。今天看淘宝的博客,提到hadoop自带的测试工具,遂试了一把,记录一下,供以后参考。
 
二、使用
 
我做基准测试主要是用了hadoop-0.20.2-test.jar这个工具jar包。主要是做了I/O的测试。在网上也找了一些资料,抄抄谢谢记录如下:
 
DFSCIOTest   
测试libhdfs中的分布式I/O的基准。Libhdfs是一个为C/C++应用程序提供HDFS文件服务的共享库。
 
DistributedFSCheck   
文件系统一致性的分布式检查。
 
TestDFSIO   
分布式的I/O基准。目前我就做了这个测试。输入参数:hadoop jar hadoop-0.20.2-test.jar TestDFSIO -write -nrFiles 10 -fileSize 1000,结果在同级目录下会有一个TestDFSIO_results.log,查看就可以了。完事记得执行hadoop jar hadoop-0.20.2-test.jar TestDFSIO -clean
 
clustertestdfs   
对分布式文件系统的伪分布式测试。
 
dfsthroughput   
测量HDFS的吞吐量。
 
filebench   
SequenceFileInputFormat和SequenceFileOutputFormat的基准,这包含BLOCK压缩,RECORD压缩和非压缩的情况。TextInputFormat和TextOutputFormat的基准,包括压缩和非压缩的情况。
 
loadgen   
通用的MapReduce加载产生器。
 
mapredtest   
MapReduce作业的测试和检测。
 
mrbench   
创建大量小作业的MapReduce基准。
 
nnbench   
NameNode的性能基准。
 
testarrayfile   
对有键值对的文本文件的测试。
 
testbigmapoutput   
这是一个MapReduce作业,www.linuxidc.com它用来处理不可分割的大文件来产生一个标志MapReduce作业。
 
testfilesystem   
文件系统读写测试。
 
testipc   
Hadoop核心的进程间交互测试。
 
testmapredsort   
用于校验MapReduce框架的排序的程序。
 
testrpc   
对远程过程调用的测试。
 
testsequencefile   
对包含二进制键值对的文本文件的测试。
 
testsequencefileinputformat   
对序列文件输入格式的测试。
 
testsetfile   
对包含二进制键值对文本文件的测试。
 
testtextinputformat   
对文本输入格式的测试。
 
threadedmapbench   
对比输出一个排序块的Map作业和输出多个排序块的Map作业的性能。
 
三、总结
 
1、输入hadoop jar hadoop-0.20.2-test.jar都会有一些提示帮助,不过建议还是看看源码,更清晰。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-03/56009.htm

 

 


~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值