您的位置:首页 > 编程语言 > PHP开发

使用TPC-H 对hive进行基准测试

2018-03-02 19:33 671 查看
前言:由于实验的需要,需用TPC-H 对hive进行基准测试,过程记录如下 
系统环境介绍:
    centos7.4.1708
    hadoop2.8.3 一个NameNode 四个DataNode
    hive       1.2.2
    mysql  5.7.20
    TPC-H  2.17.3
 
A:安装配置
a.  下载TPC-H源码tpch_2_17_3.zip,用来生成测试数据
网址如下(需要填写自己的相关信息之后会收到邮件给你发下载地址):
http://www.tpc.org/tpc_documents_current_versions/download_programs/tools-download-request.asp?bm_type=TPC-H&bm_vers=2.17.3&mode=CURRENT-ONLY
 
b.  将TPC-H压缩包解压,本文中解压目录为:/opt/
    命令:unzip tpch_2_17_3.zip -C /opt/
 
c.  进入tpch目录下的dbgen子目录下,将makefile.suite文件拷贝为makefile,并对makefile进行修改
    cpmakefile.suite makefile
    vimakefile
在makefile文件中的相应行进行如下修改(hive 部署的时候集成的是mysql):
CC     = gcc
# Current values for DATABASE are:INFORMIX, DB2, TDAT (Teradata)
#                                  SQLSERVER,SYBASE, ORACLE, VECTORWISE
# Current values for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS,
#                                  SGI, SUN, U2200, VMS, LINUX, WIN32
# Current values for WORKLOAD are:  TPCH
DATABASE = MYSQL
MACHINE = LINUX
WORKLOAD = TPCH
DATABASE设为MYSQL(注意注释里写的提供的数据库格式没有mysql,所以要自己写一个格式)
 
d.  修改dbgen文件夹下的tpcd.h文件#ifdef MYSQL
#defineGEN_QUERY_PLAN  ""
#defineSTART_TRAN      "STARTTRANSACTION"
#defineEND_TRAN        "COMMIT"
#defineSET_OUTPUT      ""
#defineSET_ROWCOUNT    "limit %d;\n"
#defineSET_DBASE       "use %s;\n"
#endif
 
e.  在目录/opt/TPCH2.17.3/dbgen下执行makefile
[hadoop@dn1 dbgen]$ make
 
f.  生成需要用的数据
     [hadoop@dn1 dbgen]$ ./dbgen -s 1
    说明:-s 代表数据规模因子,1 代表产生1G的数据量
    在当前文件夹下生成的8个.tbl文件就是我们所需要的数据。
 
B: 测试
    在hive上建8个表
   下载最新的TPC-H_on_Hive命令包
   网址:https://issues.apache.org/jira/secure/attachment/12416615/TPC-H_on_Hive_2009-08-14.tar.gz
   解压后,将之前生成的8个表(在/opt/TPCH2.17.3/dbgen目录下)( 即.tbl文件) 复制或者放在/opt/TPC-H_on_Hive/data目录下
[hadoop@dn1/]$ cp /opt/TPCH2.17.3/dbgen/*.tbl  /opt/TPCH_on_Hive/data/
先对tpch目录下的命令试着执行一下自动生成hive 表
在目录/opt/TPC-H_on_Hive下新建一个脚本并执行,内容如下:
 
#!/bin/bash
for var in `ls /opt/TPC-H_on_Hive/tpch`
do
       echo hive -f /opt/TPC-H_on_Hive/tpch/${var}
       echo
       hive -f /opt/TPC-H_on_Hive/tpch/${var}
       echo
       echo
done
 
hive 中表建好以后开始导入数据,命令如下(要导入八个表中):
hive> LOAD DATA LOCAL INPATH'/opt/TPC-H_on_Hive/data/customer.tbl' INTO TABLE customer;
 
导入完数据以后,就可以真正的跑一遍脚本进行TPC-H 基准测试了
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: