一、准备工作
操作系统 centOS 64 位
JDK 1.7
maven
hadoop 2.6
github下载HiBench 4.0
运行 bin/build-all.sh编译 (参考HiBench 的说明,因没有安装spark,直接运行run-all.sh 会报错,忽略)。
二、 编译运行
1. conf 目录下的benchmarks.lst文件设置测试项,一行一个测试项目,删除到只保留wordcount
2. conf目录下的languages.lst文件设置测试语言的类型,一行一种语言,用#号注释掉spark/java等,只保留mapreduce
3. 运行run-all.sh可得到结果
三、探索
1. 复制run-all.sh成run-wordcount.sh,将其中从benchmarks.lst这一段 删除,benchmark直接设置成等于wordcount就只执行wordcount 测试
2. 阅读sh发现它进一步调用workloads/wordcount的对应prepare.sh 准备数据,然后再调用workloads/wordcount的对应run.sh执行测试
3. function下的workload-functions.sh 中提供了gen_report()这样的公共函数
4. 结构复杂,功能强
5.层层剥离出必须得公共函数,timestamp()、dir_size()、gen_report()等重新整理了一个单一的脚步bench-workcount.sh
6.运行bench-workcount.sh 测试通过,这样把hadoop wordcount基准测试的基本流程理清楚了。