0

在我使用 ambari 部署 hdfs、map reduce、hawq、pxf 后,我使用 impala-tpcds-kits 在 hdfs 上生成了大约 10G 的数据。

但是当我使用用户 postgres 登录 Postgres 时,我无法使用命令行CREATE EXTERNAL TABLE来索引 hdfs 上的数据。当我使用 psql help 命令时,没有关键字CREATE EXTERNAL TABLE.

我不知道为什么?

Last login: Thu Aug 25 15:08:15 2016 from 192.168.1.50
[root@hadoop-m-21 ~]# su postgres
bash-4.1$ psql
psql (8.4.20)
Type "help" for help.

postgres=# CREATE EXTERNAL TABLE EXT_LOG_INFO (hight int,weight int) 
LOCATION     ('pxf://10.0.0.21:51200/tmp/test2.txt?PROFILE=HdfsTextSimple') 
FORMAT 'TEXT' (DELIMITER '|'); 
ERROR:  syntax error at or near "EXTERNAL"
LINE 1: CREATE EXTERNAL TABLE EXT_LOG_INFO (hight int,weight int) LO...
           ^
4

4 回答 4

2

您没有连接到 HAWQ。

[root@hadoop-m-21 ~]# su postgres
bash-4.1$ psql
psql (8.4.20)
Type "help" for help.

这是一个 PostgreSQL 数据库,很可能是为 Ambari 安装的数据库。使用 gpadmin 帐户而不是 postgres。

另外,如果你想运行 TPC-DS,试试这个专为 HAWQ 和 Greenplum 设计的。 https://github.com/pivotalguru/TPC-DS

于 2016-08-25T14:38:41.190 回答
1

请确保您正在调用连接到 hawq 的 psql,而不是连接到 linux 内置的 postgreSQL 实例。

你可以运行'netstat -anp | grep 5432' 知道 postgres 的 pid,并使用 'ps -ef | grep your_pid 知道二进制路径,检查路径是hawq。

或者您可以运行 SQL 'SELECT VERSION();' 在 psql 中进行检查。

于 2016-08-25T10:11:33.107 回答
1

请按照以下步骤操作。

登录hawq主节点

ps -ef |grep silent (找出hawq master正在监听的端口)

su - gpadmin

psql(psql 应该将您连接到 hawq gpadmin 数据库)

如果不输入

psql -p 端口号 -h masterhost -d 数据库

于 2016-08-25T15:43:07.657 回答
1

您可能正在连接到 ambari postgres。检查 Ambari 中的 hawq 设置并使用 psql -h hostname -p port -d database -U username。

于 2016-08-25T12:43:46.757 回答