一、测试环境
4节点
node1.don.com 192.168.8.32
node2.don.com 192.168.8.25
node3.don.com 192.168.8.26
node4.don.com 192.168.8.15
服务器配置
CPU:ntel Xeon Processor (Skylake, IBRS)
内存:32G
磁盘:sda 600G sdb 1.2T
hadoop3.1
hive3.1.2
二、测试工具
TPC-H_Tools_v2.18.0.zip --用来生成测试数据
TPC-H_on_Hive_2009-08-14.tar.gz --用来自动化执行测试脚本
测试工具连接地址
http://tpc.org/tpc_documents_current_versions/current_specifications5.asp
https://issues.apache.org/jira/secure/attachment/12416615/TPC-H_on_Hive_2009-08-14.tar.gz
三、测试方法
上传文件到指定目录减压
上传TPC-H_Tools_v2.18.0.zip和TPC-H_on_Hive_2009-08-14.tar.gz工具到服务器/home/hdfs目录
解压
unzip TPC-H_Tools_v2.18.0.zip mv 2.18.0_rc2 tpch-hive
tar -xzvf TPC-H_on_Hive_2009-08-14.tar.gz -C /home/hdfs/
mv TPC-H_on_Hive autotpchonhive
文件修改
进入/home/hdfs/tpch-hive/dbgen
进入tpch目录下的dbgen子目录下,将makefile.suite文件拷贝为makefile,并对makefile进行修改
cp makefile.suite makefile
vim makefile
在makefile文件中的相应行进行如下修改(hive 部署的时候集成的是mysql):
CC =gcc
Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
SQLSERVER, SYBASE, ORACLE, VECTORWISE
Current values for MACHINE are: ATT, DOS, HP, IBM, ICL, MVS,
SGI, SUN, U2200, VMS, LINUX, WIN32
Current values for WORKLOAD are: TPCH
DATABASE= MYSQL
MACHINE = LINUX
WORKLOAD = TPCH
DATABASE设为MYSQL(注意注释里写的提供的数据库格式没有mysql,所以要自己写一个格式)
修改dbgen文件夹下的tpcd.h文件添加
#ifdef MYSQL
#define GEN_QUERY_PLAN “”
#define START_TRAN “STARTTRANSACTION”
#define END_TRAN “COMMIT”
#define SET_OUTPUT “”
#define SET_ROWCOUNT “limit %d;\n”
#define SET_DBASE “use %s;\n”
#endif
编译
在目录/home/hdfs/tpch-hive/dbgen下执行makefile
[root@node1 dbgen]$ make
生成需要用的数据
[root@node1 dbgen]# ./dbgen -s 100
说明:-s 代表数据规模因子,1 代表产生1G的数据量
在当前文件夹下生成的8个.tbl文件就是我们所需要的数据。
测试
将之前生成的8个表(在/home/hdfs/tpch-hive/dbge目录下)( 即.tbl文件) 复制或者放在/home/hdfs/autotpchonhive/data目录下
进入/home/hdfs/autotpchonhive/data目录
cp /home/hdfs/tpch-hive/dbge/*.tbl /home/hdfs/autotpchonhive/data
执行data目录下脚本把生成的数据文件上传到hdfs目录(脚本内容自己查看)
./tpch_prepare_data.sh
在目录/home/hdfs/autotpchonhive下新建一个脚本并执行,内容如下:
修改配置文件benchmark.conf
TPC-H的22查询sql在tpch目录下 通过tpch_benchmark.sh脚本调用来进行性能测试
执行tpc-h查询脚本
./tpch_benchmark.sh
也可以自己写脚本去调用
#!/bin/bash
for var in ls /opt/TPC-H_on_Hive/tpch
do
echo hive -f /home/hdfs/autotpchonhive/tpch/{var}
echo
echo
done