基於【CentOS-7+ Ambari 2.7.0 + HDP 3.0】HAWQ數據倉庫 使用之 gpfdist協議

1、HAWQ基本安裝自帶gpfdist協議web

gpfdist是HAWQ支持的外部表訪問協議之一,這是hawq自帶的一個簡單的集成http服務命令。數據庫

在個人前述安裝hawq以後,gpfdist命令位於hawq的bin目錄之中。/opt/gpadmin/apache-hawq/bin/gpfdistapache

gpfdist使用說明很簡單,且看:oop

[root@ep-bd01 ~]# /opt/gpadmin/apache-hawq/bin/gpfdist --help
gpfdist -- file distribution web server

usage: gpfdist [--ssl <certificates_directory>] [-d <directory>] [-p <http(s)_port>] [-l <log_file>] [-t <timeout>] [-v | -V] [-m <maxlen>][-c file]

       gpfdist [-? | --help] | --version

        -?, --help : print this screen
        -v         : verbose mode
        -V         : more verbose
        -p port    : port to serve HTTP(S), default is 8080
        -d dir     : serve files under the specified directory,  default is '.'
        -l logfn   : log filename
        -t tm      : timeout in seconds 
        -m maxlen  : max data row length expected, in bytes. default is 32768
        --ssl dir  : start HTTPS server. Use the certificates from the specified directory
        -c file    : configuration file for transformations
        --version  : print version information

這裏我只關心-d和-p兩個命令行參數this

2、gpfdist服務簡單使用spa

1,啓動gpfdist服務命令行

gpfdist不像pxf協議那麼麻煩,因爲他只是服務於本機目錄,因此只要在數據目錄所在的主機上啓動gpfdist,hawq便可訪問了。code

[root@ep-bd01 ~]# /opt/gpadmin/apache-hawq/bin/gpfdist -p8809 -d/var/data/ext
Serving HTTP on port 8809, directory /var/data/ext

2,準備數據文件orm

1)創建本地路徑/var/data/ext/yxbwserver

2)路徑放置從hdfs文件系統中複製過來的用sqoop從其餘數據庫系統的數據表導入的數據文件,而且導入時啓用了--compress參數,因此數據文件是gz壓縮格式,這個gpfdist協議能夠直接訪問。

[root@ep-bd01 pxf]# hdfs dfs -copyToLocal /var/data/ext/table1/* /var/data/ext/table1/. 
[root@ep-bd01 pxf]# ll /var/data/ext/table1/
總用量 152
-rw-r--r--. 1 root root 69503 9月  10 09:45 part-m-00000.gz
-rw-r--r--. 1 root root 41334 9月  10 09:45 part-m-00001.gz
-rw-r--r--. 1 root root 24035 9月  10 09:45 part-m-00002.gz
-rw-r--r--. 1 root root 14345 9月  10 09:45 part-m-00003.gz
-rw-r--r--. 1 root root     0 9月  10 09:45 _SUCCESS

 

3,創建hawq外部表

注意,gpfdist路徑中的table1路徑是相對於gpfdist服務啓動時經過參數"-d"指定的數據路徑的。

create external table ext.table1 (occur_time date, ......) location ('gpfdist://ep-bd01:8081/table1') format 'text'(delimiter ',' null '');    

4,訪問外部表

epbd=> select count(*) from ext.table1;
 count 
-------
  6288
(1 row)

Time: 258.015 ms
相關文章
相關標籤/搜索