0

小さな gpdb クラスターがあります。gpfdist プロトコルを使用して、最初の外部テーブルを作成して読み取ろうとしているとき。

外部テーブルの読み取り時にエラーが発生しました: つまり

prod=# select * from ext_table
prod-# ;
ERROR:  connection with gpfdist failed for gpfdist://gpmasterhost:8080/demo/gp_RevenueReport_stg0.txt. effective url: http://gpmasterhost:8080/demo/gp_RevenueReport_stg0.txt. error code = 111 (Connection refused)  (seg0 slice1 datanode2 40000 pid=5402)
prod=#

外部テーブルのDDLコマンドを試しました:

CREATE EXTERNAL TABLE ext_table
(
  "ID" bigint,
  "time" timestamp without time zone,
   )
 LOCATION (
    'gpfdist://gpmasterhost:8080/demo/gp_RevenueReport_stg0.txt'
)
 FORMAT 'TEXT' (delimiter ';' null '' escape '~' )
ENCODING 'UTF8';

それについての助けをいただければ幸いです!

4

2 に答える 2

1

Jon が言ったように、「gpmasterhost」システムで gpfdist を実行する必要があります。

ただし、メモに基づいて、gpfdist は demo ディレクトリで実行されています。

ps aux |grep gpfdist root 9417 0.0 0.0 103244 868 pts/1 R+ 14:57 0:00 grep gpfdist gpadmin 32581 0.0 0.0 27148 1692 pts/0 S 14:49 0:00 gpfdist -p 8080 -d/home/gpadminデモ

そのため、EXTERNAL 定義を次のように変更する必要があります (デモ ディレクトリは使用していないことに注意してください)。

CREATE EXTERNAL TABLE ext_table ( "ID" bigint, "time" timestamp without time zone, ) LOCATION ( 'gpfdist://gpmasterhost:8080/gp_RevenueReport_stg0.txt' ) FORMAT 'TEXT' (delimiter ';' null '' escape '~ ' ) エンコーディング 'UTF8';

または、外部テーブルを変更せずに、1 レベル上 (/home/gpadmin) で gpfdist を実行します。

于 2016-06-16T15:19:02.683 に答える
1

ポート 8080 でリッスンし、gp_RevenueReport_stg0.txt を含むディレクトリ demo を含むファイルを提供する "gpmasterhost" で gpfdist プロセスを作成する必要があります。

gpfdist -p 8080 -d path_to_demo & 
于 2016-06-16T14:44:48.267 に答える