从头开始系列(二)--数据基准测试篇之TPC-DS

从头开始系列—数据基准测试篇之TPC-DS

标签(空格分隔): 大数据 从头开始系列



1、准备工具

TPC-DS不多做介绍了,根据官方提供得文档我们可以看到:
image_1cbgu076qb2sjpkj4cgfh15oa9.png-5.3kB
可以做Ad hocOLAP查询等等,那么在大数据领域,我们可以使用TPC-DS来生成海量数据,并且使用它提供得测试语句来完成性能得基准测试。再官方网站下载相关软件包:
http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp
好了,我们已经下好了软件包了。
image_1cbgu7v5q198u103kndjm211itl1m.png-3.3kB
对没错,就是那个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页的位置有如下图:
image_1cbguba9a8o0ant1c2n16plnq923.png-58.9kB
我们可以看到,下图是实事表Store_Sales表设计图:
image_1cbgueeig13te1gl71etm1q1e1kem2g.png-44.8kB
image_1cbgugf241esv18aq9291gfks2t.png-56.5kB
实事表Store_Sales表字段设计图

实事表Store Returns
image_1cbgv2952avns5qm0325q1ukg3a.png-52kB
image_1cbgv3mev1fq910p0j30daj1c5c3n.png-52.9kB
image_1cbgv42b91dnd1j711rf1h0f187b44.png-31.5kB

实事表Catalog Sales
image_1cbgv56gn1ucf1fqs1r4t54912fm4h.png-52.2kB
image_1cbgv5mvu7b1a161qo11d8thsb4u.png-93.7kB
image_1cbgv64q7jvt1jfa1knq10k0j8b5b.png-52.4kB

实事表Catalog Returns
image_1cbgv73uv9njv1qht2v1mvam5o.png-61.3kB
微信图片_20180420152819.png-55.1kB
微信图片_20180420152819.png-51.9kB

实事表Web Sales
image_1cbgve5ml1641cc6cqhot51v839i.png-51.1kB
微信图片_20180420153123.png-65.9kB
image_1cbgvfpv3ftr1ecqd121pdb1hhvak.png-71.7kB

实事表Web Returns
微信图片_20180420153123.png-81.4kB
image_1cbgvj6a4hg5177jf0ro67ljpcm.png-45.2kB
微信图片_20180420153123.png-57.9kB

实事表Inventory
image_1cbgvn24d1ieirpatsiqqgotje8.png-13.6kB
image_1cbgvnh33bor3j81bd51aa1cchel.png-22.9kB

OK,以上表都是TPC-DS中的实事表,下面的是所有维度表表设计图

维度表Store
微信图片_20180420153123.png-21.9kB
微信图片_20180420153123.png-71kB

维度表Call Center
image_1cbgvufp8k3a1gm7cd013m31veui4.png-103kB

维度表Catalog_page
image_1cbh00n3r8uku6r8337ea4dlj1.png-39.7kB

维度表Web_site
image_1cbh043pnp7le4som13oc1nmglu.png-40.4kB
image_1cbh04ps21c1q1nif15mq1sa29iamr.png-18.3kB

维度表Warehouse
image_1cbh05i88eque5upfo1tkpbhpn8.png-52.5kB

维度表Customer
image_1cbh0667j1v9uc01b0q7311gufnl.png-68.8kB

维度表Customer_address
image_1cbh076ejtscqt6q1uko10vooi.png-16.4kB
image_1cbh08vatupqi1ka317t31ag99.png-31.9kB

维度表Customer_demographics
image_1cbh0a69n1m3rc5v1bge1seq1vfrm.png-35.6kB

维度表Date_dim
image_1cbh0b24b1effte114gk18rb18ha13.png-82.9kB

维度表Household_demographics
image_1cbh0enmn1k3d1jfqn9h1ado17914g.png-24.2kB

打一个任性的分割线

维度表Item
image_1cbh0gm5l6oi1cat1ar8hrq12014t.png-68.1kB

维度表Income_band
image_1cbh0hhd318i7e8n1vk6ltm1ehq5a.png-15.9kB

维度表Promotion
image_1cbh0j0klqacli1eaj1ceiajf6n.png-22.7kB
image_1cbh0n9uafo0hbv1rik1ed31ng88k.png-46.4kB

维度表Reason
image_1cbh0o1va1qqa1bbd1mfu15a747991.png-16.3kB

维度表Ship_mode
image_1cbh0onb87k61qpp1tqg1as33m29e.png-24.8kB

维度表Time_dim
image_1cbh0pi6j134ptd312p5jlhn2m9r.png-31.1kB

维度表dsdgen_version
image_1cbh0q80a866aq107k9ugpa8a8.png-17.9kB

快乐的分割线

下图是不同数据规模下,每张表的数据量:
image_1cbh1334g6gff21ae2l6g100kal.png-107.7kB
image_1cbh14educd9178pp36ubp1agac2.png-119.3kB

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目录下会看到:
image_1cbh1lks54241ac61hjq6bsm2g9.png-8.7kB

##使用如下命令生成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的参数最终生成的文件大小如下所示:

image_1cbh3c0e6ree13pp1191ock1k55m.png-37.7kB

哎,就这样吧,心累。

使用hive-benchmak生成数据并导入到hive表中

嗯,介绍完了TPC-DS的表结构之类的后,我们不适用这个工具来玩,而是使用:
https://github.com/krutivan/hive-benchmark
image_1cbostkro1gs61ciu13hd1n6l13oh19.png-53.5kB

下载好文件后,传到服务器里。
image_1cbrbobsv1t393rr130n1hkhpa59.png-4.4kB

[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个半小时,慢慢等吧。。。。
image_1cbrc59vcf6ckfsco213ba1jcjm.png-26kB

OK,一段漫长的等待过后,我们造完了数据。然后我们发现,上图中是有错误的make:*** [data_dim] Erro1,通过debug,我们发现是因为我在安装HDP时,设置的容器最大内存为4G,而Tez的容器大小为11G,将Tez的容器大小改为4G后,我们继续:

./tpcds-setup 100

image_1cbrcu1cn4ri1cfp1mm43sr169o2j.png-28.3kB

等待一个漫长的片刻,导入完成。

[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多个语句是可以使用的。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值