【Hive-Hive写入数据压测】使用hive-testbench对Hive的写入数据进行压测

1)前言

在对Hive的语法及性能进行测试时,需要构造大量数据,我们可以使用hive-testbench生产指定数据量大小的数据。

1.1.hive-testbench介绍

hive-testbench提供了两种基准测试的数据生成器和示例查询(我们使用TPC-DS):

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

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

1.2.TPC-DS介绍

(1)TPC-DS简介

1、 TPC-DS采用星型雪花型等多维数据模式。

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

(1)TPC-DS基准测试特点

TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。

TPC-DS基准测试有以下几个主要特点:

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

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

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

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

2)准备工作

2.1.压测工具

hive-testbench

使用hive-testbench生成指定数据量的Hive基准测试数据

基于TPC-DS进行封装利用MapReduce的方式快速的生成Hive基准测试数据

2.2.环境准备

(1)下载工具

git clone https://github.com/hortonworks/hive-testbench.git

yum -y install gcc gcc-c++

(2)编译并打包hive-testbench

cd  hive-testbench/
./tpcds-build.sh

等待编译结束,如下显示则表示编译成功

#TPC-DSDataGeneratorbuilt,youcannowusetpcds-setup.shto generatordata.

2.3.数据准备

(1)生成数据

参数说明

  • 5:生成数据量大小
  • /tmp/tpcds-generate/:生成的文件保存在HDFS中的目录位置,如果不指定,默认为/tmp/tpcds-generate/
./tpcds-setup.sh 5 /tmp/tpcds-generate/

(2)查看生成文件

hdfs dfs -ls /tmp/tpcds-generate/

(3)查看文件大小

hdfs dfs -du -h /tmp/tpcds-generate/

2.4.监控指标

利用ClouderaManager管理界面查看写入吞吐量(在ClouderaManager主页面)

在这里插入图片描述

3)注意

注意

1、截止到上面的操作步骤时已经成功完成Hive写入数据的压测了。

2、如果需要继续测试Hive读取数据压测,那么需要利用我们刚才生成的表数据进行压测查询,所以就要判断生成的测试数据是否生成表。

正常情况下,执行完数据生成脚本(./tpcds-setup.sh 5 /tmp/tpcds-generate/)后,会自动在Hive中创建数据库以及external外表,指定location,映射到我们生成数据的目录

但是实际操作过程中可能会出现数据生成但是无法创建表的情况。

如下图

在这里插入图片描述

解决方案

因为我们生成的测试数据已经成功导入到了HDFS中,那么我们可以通过external(外表)指定location的方式来完成表的创建。

1、这里我在源码里找到了TPC-DS生成测试数据的建表语句:TPC-DS生成测试数据的建表语句

2、如果上面的链接无法进入,这里有已经copy好的DDL(只需修改sql脚本中的${DB}${LOCATION}即可):TPC-DS生成测试数据的建表语句提取码79yu

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值