使用TPC-H對Pig測試

在作完Running TPC-H on Hive後,又緊接着使用TPC-H對Pig進行了測試。有了對Hive測試的基礎,在Pig上進行測試就相對簡單多了,基本上都是「拿來主義」,都是現成的。須要使用的8個測試表以及測試數據都已經在Hive測試中生成過了,因此在Pig上就跑一遍測試程序看看結果就能夠啦。下面,就來講說TPC-H在Pig上測試的具體步驟。web

 

系統環境:apache

    6個結點,ubuntu01爲master結點,ubuntu02-ubuntu06爲slave結點ubuntu

    Ubuntu 12.04 LTSoop

    Hadoop-1.2.1測試

    Hive-0.13.1ui

    tpch_2_14_3spa

1、安裝配置orm

一、下載TPC-H源碼tpch_2_14_3.zip,用來生成測試數據ip

      網址:http://www.tpc.org/tpch/default.asphadoop

二、將TPC-H壓縮包解壓,本文中解壓目錄爲:/opt/

     命令:ubuntu@ubuntu01:~$ unzip tpch_2_14_3.zip -C /opt/

三、進入tpch目錄下的dbgen子目錄下,將makefile.suite文件拷貝爲makefile,並對makefile進行修改

     命令:ubuntu@ubuntu01:/opt/dbgen$ cp makefile.suite makefile

     命令:ubuntu@ubuntu01:/opt/dbgen$ gedit makefile

     在makefile文件中的相應行進行以下修改:CC      = gcc

     # Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)  

     #                                  SQLSERVER, SYBASE  

     # Current values for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS, 

     #                                  SGI, SUN, U2200, VMS, LINUX, WIN32   

     # Current values for WORKLOAD are:  TPCH 

     DATABASE= SQLSERVER  

     MACHINE = LINUX  

     WORKLOAD = TPCH 

四、修改dbgen文件夾下的tpcd.h文件

     修改其中的SQLSERVER段:

     #ifdef  SQLSERVER
     #define GEN_QUERY_PLAN        "EXPLAIN;"
     #define START_TRAN                "START TRANSACTION;\n"
     #define END_TRAN                "COMMIT;\n"
     #define SET_OUTPUT                ""
     #define SET_ROWCOUNT                "limit %d;\n"
     #define SET_DBASE                "use %s;\n"
     #endif

五、執行makefile

     命令:ubuntu@ubuntu01:/opt/dbgen$ make

六、生成須要用的數據

     命令:ubuntu@ubuntu01:/opt/dbgen$ ./dbgen -s 1

     說明:-s 表明數據規模因子,1 表明產生1G的數據量

     在當前文件夾下生成的8個.tbl文件就是咱們所須要的數據。

七、創建表,以及向表中加載數據

     在TPC-H_on_Hive/data目錄下有個tpch_prepare_data.sh文件,經過查看這個文件中的語句可知,運行這個命令能夠在HDFS上創建咱們所須要的8個數據表,而且將本地產生的數據文件拷貝到HDFS中。

     命令:ubuntu@ubuntu01:/opt/TPC-H_on_Hive/data$ ./tpch_prepare_data.sh

--------------------------------分割線-------------------------------------

     若是已經進行過Hive測試的話,上邊7個步驟都是能夠省略的,就像我一開始說的,Pig上邊的這套和Hive很大程度上是通用的 ( 不瞭解的能夠看個人上一篇博客 )。從這開始,就要進入Pig測試正題了。

2、Pig測試

     八、下載TPC-H_on_Pig

     網址:https://issues.apache.org/jira/browse/PIG-2397

     下載以後,一樣解壓到/opt/目錄下,將以前生成的8個表拷貝到TPC-H_on_Pig文件夾中。

     九、測試

     Pig測試命令:ubuntu@ubuntu01:/opt/TPC_H_on_Pig/$ ./run_tpch.sh hdfs://ubuntu01:9000/tpch/ hdfs://ubuntu01:9000/user/ 5

     逐個解釋一下每一個參數的含義:

     第一個:./run_tpch.sh,這個就很少說了;

     第二個:hdfs://ubuntu01:9000/tpch/ 這是輸入數據的路徑,但要注意的是這個路徑是HDFS上的路徑;

     第三個:hdfs://ubuntu01:9000/user/ 這是輸出數據的路徑,一樣也是HDFS上的文件路徑;

     第四個:5 這個參數表示的是reducers的個數,能夠根據本身系統環境的狀況來決定

     運行這個命令就萬事大吉了,但因爲測試時間可能會達到3個小時左右,因此最好將terminal中打印的信息輸入到一個文本文件,這樣能夠方便查看。實現這種輸出其實很簡單,只須要使用tee命令就能夠,在這裏咱們採用追加的方式向文本文件輸出,命令以下:

命令:ubuntu@ubuntu01:/opt/TPC_H_on_Pig/$ ./run_tpch.sh hdfs://ubuntu01:9000/tpch/ hdfs://ubuntu01:9000/user/ 5 | tee -a q1~q22_Pig.txt

      其中,q1~q22_Pig.txt 表明輸出文本文件名。

3、總結

     因爲以前對Pig也是十分不瞭解,因此就跑去看README。對README裏邊的命令解釋真心無語。原文中對於單個SQL腳本文件的給出的運行命令是

     ${PIG_HOME}/bin/pig $hadoop_opts -param input=<input_dir> -param output=<output_dir> -param reducers=<reducers> -f queries/<script_name>

     其餘參數都好理解,惟獨-param這個參數我是真不明白啥意思。看了一天都毫無進展,實在不瞭解它到底表明什麼。就在準備撒手不幹的時候,抱着試一試的心態就直接使用了 '-param',結果還真是這樣,直接用,當場就一臉黑線啊有木有,可憐我一成天的時間啊,都浪費在這上面了。之後就吸收教訓了,管他知不知道,都試試,沒準就碰上了呢。

相關文章
相關標籤/搜索