1. 软件
Hive 的性能测试,我使用的是 GitHub - hortonworks/hive-testbench,可以自行看文档进行构建,构建后,把整个文件传输到服务器上执行。
可以从 hive-testbench-2023-02-24.tar.gz 下载已经编译的包,本包里包括相关的一些命令工具。
本软件可以执行 tpcds 和 tpch 的测试。本文以 tpcds 为例。
2. 创建测试数据集
2.1 默认构建
如下面的命令可以构建,3为数据集的粒度,单位是G。是原始数据的大小,不是压缩后数据的大小。
cd hive-testbench
tpcds-setup.sh 3
2.1 数据格式
默认是 ORC,如果想改为其他格式,可以执行以下语句
export FORMAT=parquet
2.3 数据库名
数据库名在 tpcds_setup.sh 中,如下所示。
DATABASE=tpcds_hdfs_${FORMAT}_${SCALE}
如果想同时构建存储在不同系统的 5000 粒度的测试,则每次构建前需要修改 DATABASE 的名字。如构建 bos 的 5000 粒度的测试前,修改 DATABASE=tpcds_bos_${FORMAT}_${SCALE}
,则执行 sh tpcds-setup.sh 5000
的数据库名为 tpcds_bos_5000_orc。
2.4 数据库地址
默认建的数据库地址在 hive.metastore.warehouse.dir
下的目录中,如果想在其他目录中,如 bos,则需要先创建数据库,创建数据库时指定目录。
create database tpcds_bos_5000_orc location 'bos://xxxxx/tpcds_bos_5000.db';
再执行 sh tpcds-setup.sh 5000
。
3. 执行查询
cd hive-testbench/sample-queries-tpcds
本目录下有一些脚本,可以方便测试。也可以照着例子写自己需要的测试。
3.1 query-tez-container-hdfs-with-scale-beeline.sh
后面加 scale 参数,数据库格式为 tpcds_hdfs_orc_${SCALE}。连接 HiveServer 执行 tpcds query1.sql 到 query99.sql。日志输出到 logs 目录。
3.2 query-tez-container-bos-with-scale-beeline.sh
和 3.1 一样,数据库时 tpcds_bos_orc_${SCALE}。
3.3 query-tez-container-hdfs-with-scale.sh
使用 hive -e 的方式执行 tpcds query1.sql 到 query99.sql。日志输出到 logs 目录。