Hadoop常用测试集HiBench配置指南

Hibench是一个大数据 benchmark 套件,用来测试各种大数据框架的速度,吞吐量,系统资源利用率。 
它支持的框架有:hadoopbench、sparkbench、stormbench、flinkbench、gearpumpbench。

hibench作为一个测试hadoop的基准测试框架,提供了对于hive:(aggregation,scan,join),排序(sort,TeraSort),大数据基本算法(wordcount,pagerank,nutchindex),机器学习算法(kmeans,bayes),集群调度(sleep),吞吐(dfsio),以及新加入5.0版本的流测试,是一个测试大数据平台非常好用的工具

它支持的框架有:hadoopbench、sparkbench、stormbench、flinkbench、gearpumpbench。

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分布。

参考网址:

https://github.com/intel-hadoop/HiBench
https://github.com/intel-hadoop/HiBench/blob/master/docs/build-hibench.md
https://github.com/intel-hadoop/HiBench/blob/master/docs/run-hadoopbench.md

一个完整的TeraSort测试需要按以下三步执行:

  • 用TeraGen生成随机数据
  • 对输入数据运行TeraSort
  • 用TeraValidate验证排好序的输出数据

所有hibench测试基本都是这样的流程,生成数据,运行,输出结果。

软件依赖

HiBench需要java环境,以及Maven管理。

安装java运行环境

安装JDK&JRE

sudo apt-get install openjdk-8-jre openjdk-8-jdk

建议装version 8不要装9。安装完成后,默认路径是/usr/lib/jvm/java-8-openjdk-amd64,如果不一致请搜索到正确路径。

添加环境变量

cd
vim .bashrc

添加如下jave的PATH:

# JAVA PATH
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

更新环境变量

source .bashrc

测试java环境

java -version

看到相应版本信息输出即表明配置正确:

hadoop@hadoop-master:~$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

安装Maven

下载Maven包

wget http://apache.fayea.com/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip

解压缩

unzip apache-maven-3.5.0-bin.zip -d /YOUR/PATH/TO/RESTORE

笔者解压位置为/usr/local/

添加环境变量

cd
vim .bashrc

添加如下Maven的PATH:

# set maven environment
export M3_HOME=/usr/local/apache-maven-3.5.0
export PATH=$M3_HOME/bin:$PATH

更新环境变量

source .bashrc

测试Maven环境

mvn -v

看到相应版本信息输出即表明配置正确:

hadoop@hadoop-slave1:~$ mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: /usr/local/apache-maven-3.5.0
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "4.4.0-53-generic", arch: "amd64", family: "unix"

下载HiBench

Github地址:https://github.com/intel-hadoop/HiBench

注意事项:1、Python 2.x(>=2.6) is required.
                 2、bc is required to generate the HiBench report.(如没有bc工具,执行yum install bc)
                 3、Supported Hadoop version: Apache Hadoop 2.x, CDH5.x, HDP
                 4、Build HiBench according to build HiBench.
                 5、Start HDFS, Yarn in the cluster.

git clone https://github.com/intel-hadoop/HiBench.git比较慢,建议直接网页下载zip包,然后解压到理想的目录下。

安装Hibench

切到HiBench下,执行对应的安装操作,可以选择自己想要安装的模块。以安装hadoop框架下用于测试sql的模块为例:

mvn -Phadoopbench -Dmodules -Psql -Dscala=2.11 clean package 

或者直接执行

mvn clean package

更多安装命令可见https://github.com/intel-hadoop/HiBench/blob/master/docs/build-hibench.md

// 安装 bc 用于生成 report 信息
yum install bc

配置HiBench

主要配置conf/hadoop.confconf/hibench.conf两个文件。

hadoop.conf

进入conf目录:

cp hadoop.conf.template hadoop.conf
[root@cdh-agent1 conf]# vi hadoop.conf
# Hadoop home
hibench.hadoop.home     /opt/cloudera/parcels/CDH/lib/hadoop
 
# The path of hadoop executable
hibench.hadoop.executable     ${hibench.hadoop.home}/bin/hadoop
 
# Hadoop configraution directory
hibench.hadoop.configure.dir  ${hibench.hadoop.home}/etc/hadoop
 
# The root HDFS path to store HiBench data 这里就是生成测试数据存放的hdfs负目录,注意要有写权限
hibench.hdfs.master       hdfs://10.x.x.x:8020/user/hibench
 
 
# Hadoop release provider. Supported value: apache, cdh5, hdp
hibench.hadoop.release    cdh5

hibench.conf

 The definition of these profiles can be found in the workload's conf file i.e. conf/workloads/micro/wordcount.conf
hibench.scale.profile                 tiny

# Mapper number in hadoop, partition number in Spark
hibench.default.map.parallelism         8

# Reducer nubmer in hadoop, shuffle partition number in Spark
hibench.default.shuffle.parallelism     8

主要设置测试集运行时的数据量和并发度。

这里以wordcount为例,conf/benchmarks.lst 测试项目

                                     conf/frameworks.lst   配置语言,这两个文件可以不作修改即可。

在conf/hibench.conf文件中配置了一些测试的相关参数,比如MR并行度,报告路径,名称等。

其中hibench.scale.profile为对应的生成的数据量大小,他的值对应于conf/workloads/micro/wordcount.conf中设置的数值。

进入conf/workloads/micro/,wordcount.conf文件配置的是生成的数据量大小

[root@cdh-agent1 micro]# more wordcount.conf 
#datagen
hibench.wordcount.tiny.datasize                 32000
hibench.wordcount.small.datasize                320000000
hibench.wordcount.large.datasize                3200000000
hibench.wordcount.huge.datasize                 32000000000
hibench.wordcount.gigantic.datasize             320000000000
hibench.wordcount.bigdata.datasize              1600000000000
 
hibench.workload.datasize               ${hibench.wordcount.${hibench.scale.profile}.datasize}
 
# export for shell script
hibench.workload.input                  ${hibench.hdfs.data.dir}/Wordcount/Input
hibench.workload.output                 ${hibench.hdfs.data.dir}/Wordcount/Output

运行HiBench

安装完成后,可以运行其中的测试集。首先要启动hadoop:

start-dfs.sh;
start-yarn.sh;

关于hadoop的快速配置教程请见Hadoop真分布式集群最速搭建攻略

执行测试脚本

在bin/run_all.sh 该脚本为测试所有的测试基准模块(将运行所有在conf/benchmarks.lst和conf/frameworks.lst中的workloads);

这里还是以wordcount为例,

①生成测试数据  bin/workloads/micro/wordcount/prepare/prepare.sh

②运行wordcount测试例子  bin/workloads/micro/wordcount/hadoop/run.sh

③生成的测试数据在conf/hadoop.conf中hibench.hdfs.master项配置,我的是在/user/hibench/HiBench目录下

以运行Hadoop框架下micro集的sort为例:

单个测试实例运行

 bin/workloads/micro/sort/prepare/prepare.sh
 bin/workloads/micro/sort/hadoop/run.sh

运行所有在conf/benchmarks.lst 和 conf/frameworks.lst配置的测试实例.

bin/run_all.sh

等待读条MapReduce完毕,

/bin/run_all.sh可以一次性跑所有样例
设置要跑的样例

编辑/home/jeff/HiBench-master/conf/benchmark.lst保留要想测试的样例

由于实验需求我是要四中样例如下

我只要跑hadoop样例不用spark样例,所以还要删除frameworks.lst中的spark删掉

配置要一次性跑的程序之后

到/home/jeff/HiBench-master/bin中运行./run_all.sh
 

查看测试报告

测试报告位置:report/hibench.report

[root@cdh-agent1 report]# cat hibench.report 
Type         Date       Time     Input_data_size      Duration(s)     Throughput(bytes/s)  Throughput/node     
HadoopWordcount 2018-03-07 09:53:15 35891                43.457           825                 825                 
HadoopWordcount 2018-03-07 10:21:22 3284906140           283.518          11586234            11586234            
HadoopSort   2018-03-07 10:41:19 328492770            49.502               6635949            6635949             
HadoopJoin   2018-03-07 14:08:00 1919260193           264.432              7258048            7258048      

 

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值