系統環境介紹:
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,用來生成測試數據
網址如下(需要填寫自己的相關信息之後會收到郵件給你發下載地址):
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 基準測試了