使用TPC-H 對hive進行基準測試

前言:由於實驗的需要,需用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 基準測試了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章