1,TestDFSIO write和read的性能测试, 测试hadoop读写的速度。该测试为Hadoop自带的测试工具,位于$HADOOP_HOME/share/hadoop/mapreduce目录中,主要用于测试DFS的IO性能。
写入:
hadoop jar hadoop-mapreduce-client-jobclient-3.1.0.3.0.0.0-1634-tests.jar TestDFSIO -write -nrFiles 10 -size 10MB -resFile /tmp/TestDFSIOresults.txt
读取:
hadoop jar hadoop-mapreduce-client-jobclient-3.1.0.3.0.0.0-1634-tests.jar TestDFSIO -read -nrFiles 10 -size 10 -resFile /tmp/TestDFSIOresults.txt
清空数据:
hadoop jar /usr/hdp/3.0.0.0-1634/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -clean
2,TeraSort是由微软的数据库专家Jim Gray创建的标准benchmark,输入数据由Hadoop TeraGen产生。
生成数据:
hadoop jar /usr/hdp/3.0.0.0-1634/hadoop-mapreduce/hadoop-mapreduce-examples.jar teragen 数据量 数据位置
使用teragen方法进行排序:
hadoop jar /usr/hdp/3.0.0.0-1634/hadoop-mapreduce/hadoop-mapreduce-examples.jar terasort 输入文件位置/par* 输出文件位置
3,HiBench是一个大数据基准测试工具,它包含hadoopbench、sparkbench、flinkbench、stormbench、gearpumpbench等多个模块。我们可以从github上下载源码:
https://codeload.github.com/intel-hadoop/HiBench/zip/6.0
到Maven官网或其他镜像站点下载Maven:
[root@n2 ~]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
解压tarball,并配置Maven环境变量:
tar -xzvf apache-maven-3.5.3-bin.tar.gz -C /opt/
添加如下两行到配置文件/etc/profile:
export MAVEN_HOME=/opt/apache-maven-3.5.3 export PATH=$MAVEN_HOME/bin:$PATH
查看maven版本:
mvn -v
要在HiBench中简单构建所有模块,请使用以下命令:
mvn -Dspark=2.1 -Dscala=2.11 clean package
但这样会编译所有模板,耗费大量时间,因为hadoopbench依赖于Mahout和Nutch等第三方工具,编译过程会自动下载这些工具。如果我们运行这些模块,也可以只构建特定的框架来加速编译过程。
这里,我们只编译编译HadoopBench:
mvn -Phadoopbench -Dspark=2.1 -Dscala=2.11 clean package
详细说明请参见官方文档:
https://github.com/intel-hadoop/HiBench/blob/master/docs/build-hibench.md
3.1,指定hadoop配置
在配置文件conf/hadoop.conf中,定义hadoop相关信息:
属性 |
值 |
备注 |
hibench.hadoop.home |
/usr/hdp/3.0.0.0-1634/hadoop-mapreduce |
Hadoop安装目录 |
hibench.hadoop.executable |
${hibench.hadoop.home}/../hadoop/bin/hadoop |
Hadoop可执行文件路径 |
hibench.hadoop.configure.dir |
${hibench.hadoop.home}/etc/hadoop |
Hadoop配置文件目录 |
hibench.hdfs.master |
nas:///hibench |
HiBench测试数据存放路径 |
hibench.hadoop.release |
hdp |
Hadoop版本:apache/cdh5/hdp |
3.2,定义数据量级
在配置文件conf/hibench.conf中,定义数据量级别,如:
hibench.scale.profile = large
不同级别的实际数据量,定义在配置文件conf/workloads/micro/wordcount.conf:
参数 |
属性 |
值 (byte) |
tiny |
hibench.wordcount.tiny.datasize |
32000 |
small |
hibench.wordcount.small.datasize |
320000000 |
large |
hibench.wordcount.large.datasize |
3200000000 |
huge |
hibench.wordcount.huge.datasize |
32000000000 |
gigantic |
hibench.wordcount.gigantic.datasize |
320000000000 |
bigdata |
hibench.wordcount.bigdata.datasize |
1600000000000 |
3.3,其他运行参数
还可以在配置文件conf/hibench.conf中,定义其他一些运行参数,如mapper数量、report文件路径等参数,如:
属性 |
默认值 |
备注 |
hibench.default.map.parallelism |
8 |
Mapper数量 |
hibench.default.shuffle.parallelism |
8 |
Reducer数量 |
hibench.report.dir |
${hibench.home}/report |
Report文件路径 |
hibench.report.name |
hibench.report |
Report文件名 |
3.4,运行程序
运行测试数据
./bin/workloads/micro/wordcount/prepare/prepare.sh
使用测试数据进行测试
./bin/workloads/micro/wordcount/Hadoop/run.sh
等等 后续补充