基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】HAWQ数据仓库 使用之 gpfdist协议

旧时模样 提交于 2020-12-06 03:03:32

一、HAWQ基本安装自带gpfdist协议

gpfdist是HAWQ支持的外部表访问协议之一,这是hawq自带的一个简单的集成http服务命令。

在我的前述安装hawq之后,gpfdist命令位于hawq的bin目录之中。/opt/gpadmin/apache-hawq/bin/gpfdist

gpfdist使用说明很简单,且看:

[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两个命令行参数

二、gpfdist服务简单使用

1,启动gpfdist服务

gpfdist不像pxf协议那么麻烦,由于他只是服务于本机目录,所以只要在数据目录所在的主机上启动gpfdist,hawq即可访问了。

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

2,准备数据文件

1)建立本地路径/var/data/ext/yxbw

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!