从头开始系列—数据基准测试篇之TPC-DS
标签(空格分隔): 大数据 从头开始系列
1、准备工具
TPC-DS不多做介绍了,根据官方提供得文档我们可以看到:
可以做Ad hoc
OLAP
查询等等,那么在大数据领域,我们可以使用TPC-DS来生成海量数据,并且使用它提供得测试语句来完成性能得基准测试。再官方网站下载相关软件包:
http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp
好了,我们已经下好了软件包了。
对没错,就是那个v2.8.0rc4
[root@hdp03 ~]# cd v2.8.0rc4/
[root@hdp03 v2.8.0rc4]# ls
answer_sets EULA.txt query_templates query_variants specification tests tools
[root@hdp03 v2.8.0rc4]#
2、TPC-DS表设计
我们继续看官方提供的文档,能够知道,该基准测试会生成24张表,其中会有7张实事表和17张维度表。
大概在18页的位置有如下图:
我们可以看到,下图是实事表Store_Sales
表设计图:实事表Store_Sales表字段设计图
实事表Store Returns
实事表Catalog Sales
实事表Catalog Returns
实事表Web Sales
实事表Web Returns
实事表Inventory
OK,以上表都是TPC-DS中的实事表,下面的是所有维度表表设计图
维度表Store
维度表Call Center
维度表Catalog_page
维度表Web_site
维度表Warehouse
维度表Customer
维度表Customer_address
维度表Customer_demographics
维度表Date_dim
维度表Household_demographics
打一个任性的分割线
维度表Item
维度表Income_band
维度表Promotion
维度表Reason
维度表Ship_mode
维度表Time_dim
维度表dsdgen_version
快乐的分割线
下图是不同数据规模下,每张表的数据量:
OK,以上内容,主要是说明TPC-DS的一些表设计以及数据量的生成条数。下面开始真正使用该工具生成测试数据,本次测试生成10G数据量:
##我们下载的是源码包,所以需要编译一下
[root@hdp03 tools]# pwd
/root/v2.8.0rc4/tools
##安装必要依赖
[root@hdp03 tools]# yum -y install gcc gcc-c++ libstdc++-devel bison byacc flex
[root@hdp03 tools]# make
编译完成之后,我们在tools目录下会看到:
##使用如下命令生成10G数据
./dsdgen -scale 10 -dir /home/tmp/data -parallel 24
-scale 10
代表10G数据-dir /home/tmp/data
代表将数据输出到/home/tmp/data中-parallel 24
使用24个线程
一段漫长的等待之后。。。。。。。发现,生成的数据只有2.1G。。。。的确有点小,所有我又
./dsdgen -scale 100 -dir /home/tmp/data -parallel 24
生成100G数据看看总数据有多大~~
##观看输出目录下的文件大小变动
watch ls -lh
##100的参数最终生成的文件大小如下所示:
哎,就这样吧,心累。
使用hive-benchmak
生成数据并导入到hive表中
嗯,介绍完了TPC-DS的表结构之类的后,我们不适用这个工具来玩,而是使用:
https://github.com/krutivan/hive-benchmark
下载好文件后,传到服务器里。
[hdfs@hdp03 ~]$ cd hive-benchmark/
[hdfs@hdp03 hive-benchmark]$ ./tpcds-build.sh
##注意,这里需要联网,并且需要有maven。如果没有maven,那么需要首先安装maven
编译好之后,我们就可以开始造数据了。需要注意的是,该工具使用的是hadoop的mapreduce,而我们使用的又是HDP的发行版,所以我们需要:
[hdfs@hdp03 ~]$ su hdfs
[hdfs@hdp03 ~]$ FOMAT=rcfile ./tpcds-setup.sh 100
会自动通过MR程序完成100G数据的生成,嗯,这大概需要1个半小时,慢慢等吧。。。。
OK,一段漫长的等待过后,我们造完了数据。然后我们发现,上图中是有错误的make:*** [data_dim] Erro1
,通过debug,我们发现是因为我在安装HDP时,设置的容器最大内存为4G,而Tez的容器大小为11G,将Tez的容器大小改为4G后,我们继续:
./tpcds-setup 100
等待一个漫长的片刻,导入完成。
[hdfs@hdp03 hive-benchmark]$ cd sample-queries-tpcds/
[hdfs@hdp03 hive-benchmark]$ hive
hive> use tpch_flat_orc_1000;
hive> source tpch_query1.sql;
需要注意
的是,该工具有些查询是不支持hive的,因为它写的是sql标准,而非hive sql标准!!!大概有50多个语句是可以使用的。