hibench学习
hibench包含几个hadoop的负载
-
micro benchmarks
Sort:使用hadoop randomtextwriter生成数据,并对数据进行排序。
Wordcount:统计输入数据中每个单词的出现次数,输入数据使用hadoop randomtextwriter生成。
TeraSort:输入数据由hadoop teragen产生,通过key值进行排序。 -
hdfs benchmarks
增强行的dfsio:通过产生大量同时执行读写请求的任务测试hadoop机群的hdfs吞吐量 -
web search bench marks
Nutch indexing:大规模收索引擎,这个是负载测试nutch(apache的一个开源搜索引擎)的搜索子系统,使用自动生成的web数据,web数据中的连接和单词符合zipfian分布(一个单词出现的次数与它在频率表的排名成反比)
Pagerank:这个负载包含在一种在hadoop上的pagerank的算法实现,使用自动生成的web数据,web数据中的链接符合zipfian分布。(对于任意一个term其频度(frequency)的排名(rank)和frequency的乘积大致是一个常数) -
machine learning benchmarks
Mahout bayesian classification(bayes):大规模机器学习,这个负载测试mahout(apache开源机器学习库)中的naive bayesian 训练器,输入的数据是自动生成的文档,文档中的单词符合zipfian分布。
Mahout k-means clustering(kmeans):测试mahout中的k-means聚类算法,输入的数据集由基于平均分布和高斯分布的genkmeansdataset产生。 -
data analytics benchmarks
Hive query benchmarks(hivebench):包含执行的典型olap查询的hive查询(aggregation和join),使用自动生成的web数据,web数据的链接符合zipfian分布。
hibench运行流程
在github上下载hibench3.0版本并且解压
修改bin/hibench_config.sh文件的这几个参数
export JAVA_HOME=jdk地址
export HADOOP_HOME=hadoop地址
export HADOOP_EXECUTABLE=/bin/hadoop
export HADOOP_CONF_DIR=/conf
export HADOOP_EXAMPLES_JAR=/share/hadoop/mapreduce2/hadoop-mapreduce-examples-*.jar
export MAPRED_EXECUTABLE=/bin/mapred
#Set the varaible below only in YARN mode
export HADOOP_JOBCLIENT_TESTS_JAR=/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient-*-tests.jar
多个服务一起运行
修改conf/benchmarks.lst,哪些不想运行的将之注释掉
运行bin/run-all.sh,如果在之前的步骤中没有注释,会运行所有的
多并发运行
修改conf/benchmarks-concurrent.lst文件,修改后面数字显示多少个并发数
运行bin/prepare-concurrent.sh
运行bin/run-concurrent.sh
独立运行
在相应目录下,修改conf/configure.sh文件来改变配置
运行bin/prepare.sh,(dfsioe运行bin/prepare-read.sh)准在在hdfs中input数据
运行bin/run*.sh运行相应的benchmark
注意运行hibench需要maven,如果没有,自行下载
在运行的过程中
如果提示“The XXX bin file hasn't be downloaded by maven, please check!”
请到目录“/home/perf_test/HiBench/common/hibench/XXX/”下面执行mvn install
结果在hibench.report中保存