目标:通过TPC-DS测试hive,内网安装tpcds,执行sql47对hive进行测试。
参考链接:大数据测试解析,
下载链接:
问题:外网可直接下载源码,make,然后就可以使用,但是在内网中无法make成功。
准备:除需测试的环境外,建一个相同系统的可联网的环境,可虚拟机创建一个。
步骤:
1、下载hive-testbench-hdp源码(可用git clone),并下载TPCDS_Tools.zip包(更名为tpcds_kit.zip,后续会用上)。
2、虚拟机需要安装(缺少什么装什么):
gcc,yum -y install gcc gcc-c++安装;
maven,以来python和java环境;
3、在虚拟机中进入到hive-testbench-hdp3/tpcds-gen目录下,make,等执行完毕后,进入目录 “/hive-testbench-hdp3/tpcds-gen/target”,可以找到 “tpcds-gen-1.0-SNAPSHOT.jar”文件,此文件是内网无法产生最为需要的。
4、将整个hive-testbench-hdp3文件上传到内网环境中,此时可开始进行测试。
5、产生数据:./tpcds_setup.sh {size} ,size表示数据大小,单位是GB。一般默认数据保存在/tmp/tpcds下,也可在命令后指定目录(生成数据时要进入到hive,如图image-su-hive)。查看数据大小,命令是
hdfs dfs -du -h /tpcds/1000。
6、进行sql查询:hive -database tpcds_bin_partitioned_orc_500 -f query47.sql。tpcds_bin_partitioned_orc_500为相应的数据库,生成数据后会将数据写入数据库中。
7、为了打印日志,想了一个很笨的办法。在/hive-testbench-hdp3/sample-queries-tpcds目录下写一个shell脚本“execute_sql.sh”,内容是:
#!/bin/bash
hive -database tpcds_bin_partitioned_orc_500 -f query47.sql
新建txt文件用来保存日志,
nohup ./{sh_name} > result.txt 2>&1&
利用nohup 执行脚本,并将输出进行重定向,运行完后可以查看result.txt。
8、生成不同的数据量进行sql负载查询,考察相关hive性能。
拓展:
备注1,进入到hive-testbench-hdp3/tpcds-gen目录下,查看Makefile(vim Makefile),注释掉这两行(Makefile中需要下载TPCDS_Tools.zip,并改为tpcds_kit.zip,内网中无法联网,所以无法make成功)。
备注2、查看tpds_setup.sh脚本,大概是60行的位置。内网无法通过make编译生成相应的jar文件,所以执行脚本产生数据会失败。