Hive压测之开源Hive基准测试工具(hive-testbench-hive14)

南墨3年前技术文章3714

此文章禁止转载

概述

Hive基准测试工具工具,可用来造数测试Hive基本性能。

  • TPC-DS:提供一个公平和诚实的业务和数据模型,99个案例

  • TPC-H:面向商品零售业的决策支持系统测试基准,定义了8张表,22个查询


压测扩展:

TPC-DS

TPC-DS测试基准是TPC组织推出的用于替代TPC-H的下一代决策支持系统测试基准。因此在讨论TPC-DS之前,先介绍一下TPC-H。

1. TPC-H

TPC-H是一款面向商品零售业的决策支持系统测试基准,它定义了8张表,22个查询,遵循SQL92。TPC-H的数据模型如图4所示。TPC-H基准的数据库模式遵循第三范式,叶晓俊教授等学者[6]认为“它的数据表数据特征单一(如数据不倾斜) ,其数据维护功能仅仅限制了潜在的对索引的过度使用,而没有测试DBMS 执行真实数据维护操作——数据提取、转换和加载(ETL) 功能的能力”。同时,新兴的数据仓库开始采用新的模型,如星型模型、雪花模型。TPC-H已经不能精准反映当今数据库系统的真实性能。为此,TPC组织推出了新一代的面向决策应用的TPC-DS 基准。

2. TPC-DS

TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。

TPC-DS的这个特点跟大数据的分析挖掘应用非常类似。Hadoop等大数据分析技术也是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。因此TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。这个基准测试有以下几个主要特点:


一共99个测试案例,遵循SQL'99和SQL 2003的语法标准,SQL案例比较复杂

分析的数据量大,并且测试案例是在回答真实的商业问题

测试案例中包含各种业务模型(如分析报告型,迭代式的联机分析型,数据挖掘型等)

几乎所有的测试案例都有很高的IO负载和CPU计算需求


叶晓俊等学者对这些查询的分部总结如表1所示[6]。典型的Store_Sales的数据模型如图5所示。这个基准测试的完整信息请参考http://www.tpc.org/tpcds/

http://www.tpc.org/tpch/default.asp

中文版说明:http://www.doc88.com/p-1764615763850.html


安装部署

本文基于已经安装过jdk和maven的节点环境开始部署

1、节点安装gcc编译环境

yum -y install gcc gcc-c++


2、获取hive14压缩包

wget https://github.com/hortonworks/hive-testbench/archive/hive14.zip

3、节点安装zip、unzip命令

 

yum install -y unzip zip

1.png


4、解压hive14zip包

unzip hive14.zip


5、执行如下命令进行编译打包

 

./tpcds-build.sh

1.png


由上面可以看出报错了,编译失败,报错内容:找不到zip类型的文件,很奇怪,tpcds-gen目录下是有这个文件tpcds_kit.zip的,也复制到target目录下面了,所以想使用unzip命令解压一下,得出结果说这个文件不是一个zip文件。问题出现在这,所以要找哪里用的zip文件,如何获取到的?


1.png


查看tpcds-build.sh脚本中的内容

1.png


上面基本是gcc和maven环境的命令,倒数第二行,进入tpcds-gen目录,执行make命令

报错和上面执行./tpcds-build.sh时报错一致,继续找zip...

查看里面的Makefile文件

1.png


可以看到目前tpcds_kit.zip已经存在于tpcds-gen目录中,执行curl的时候运行失败,该链接在页面上也无法显示,所以在获取TPCDS_Tools.zip的时候报错,TPCDS_Tools.zip就是后面的tpcds_kit.zip

1.png


间接方案:下好包然后上传到target目录中,将文件中获取zip包的地方去掉,请自行找包

1.png


重新执行编译命令./tpcds-build.sh ,遇到询问时输入y,编译成功

1.png


此时target目录下生成了tpcds-gen-1.0-SNAPSHOT.jar

1.png


6、生成数据并加载到hive中

 

FORMAT=parquet ./tpcds-setup.sh 10
或者
./tpcds-setup.sh 10 /tpcds

参数说明:

  • FORMAT=parquet ,指定格式化方式为parquet,也可以是rcfile等等,默认是textfile格式

  • 10表示生成的数据量大小GB单位

  • /tpcds表示数据在HDFS上生成的目录,目录不存在自动生成,如果不指定数据目录则默认生成到/tmp/tpcds目录下。

1.png


报错了,修改好用户及所属组后换成hdfs用户再试下,可以看到这是一个mr程序,

1.png


7、hive表中生成数据


8、测试使用

cd sample-queries-tpcds
hive -i testbench.settings



2.png


9、执行其他压测sql

use tpcds_bin_partitioned_parquet_30;

source query55.sql;


相关文章

CDP实操--HDFS角色迁移

CDP实操--HDFS角色迁移

    hdfs角色迁移功能在cdp页面中就可以实现该功能,迁移的时间与namenode元数据大小,以及block数量多少有关,注意迁移过程中集群需要关闭,要预留出操作时间窗口。1、页面选择迁移角色2...

Debezium部署以及同步之DB2数据到Kafka的同步

Debezium部署以及同步之DB2数据到Kafka的同步

因为Debezium依赖于kafka之上,所以我们先部署kafka和zookeeper(忽略)。1 环境介绍Debezium1.9版本 Db2 11.5版本  附官网:http...

hive执行count和spark执行count结果不一致

hive执行count和spark执行count结果不一致

【组件版本】hive on mr、spark【问题现象】hive 执行count语句,结果条数为0,spark执行count语句能正常显示count数【详细描述】hive 执行count语句:显示co...

HDFS Fsimage分析磁盘目录(文件级别)

HDFS Fsimage分析磁盘目录(文件级别)

首先获取fsimage信息hdfs dfsadmin -fetchImage  /opt/fsimage格式化fsimage 转换为可读文本hdfs oiv -i /opt/fsimage/fsima...

trino容器对接ldap(二)

trino容器对接ldap(二)

前提:本文前提是在trino容器已经对接上hive组件,并且ldap已经部署完成的基础上进行的对接。前提文章见:helm安装部署trino对接hive(一)安装部署1、设置证书因为不确定是在哪台机器中...

ES运维(二)字段类型与内存管理

ES运维(二)字段类型与内存管理

一、ES常见字段类型1、 概述字段是数据存储的最小微粒,根据数据的性质不同将数据分成不同的字段类型,熟悉不同字段类型的特性,对索引的Mapping设计、查询调优都极其重要。2、 关键参数In...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。