我正在尝试在Greenplum(postgresql)中创建一个可写外部表,并使用它将数据从Greenplum表卸载到HDFS中。这是代码:
CREATE WRITABLE EXTERNAL TABLE test_writable
( LIKE awc_merged.delivery )
LOCATION ('gphdfs://10.63.33.201-1:8081/path')
FORMAT 'TEXT' (DELIMITER ',')
DISTRIBUTED RANDOMLY;
INSERT INTO test_writable SELECT * FROM awc_merged.delivery;
但是,我收到以下错误:
ERROR: could not write to external resource: Broken pipe (fileam.c:1386) (seg3 sdw2:40001 pid=21676) (cdbdisp.c:1457)
********** Error **********
ERROR: could not write to external resource: Broken pipe (fileam.c:1386) (seg3 sdw2:40001 pid=21676) (cdbdisp.c:1457)
SQL state: XX000
Greenplum数据库和HDFS位于不同的服务器上,我知道该命令至少应包含HDFS服务器的用户名和密码。任何人都可以帮助我完成这项任务的正确命令吗?
此致
琼斯
答案 0 :(得分:0)
首先,尝试设置可读的外部表。以下是指导如何完成:https://support.pivotal.io/hc/en-us/articles/202635496-How-to-access-HDFS-data-via-GPDB-external-table-with-gphdfs-protocol
此示例适用于PHD分发,但可以针对任何其他分发进行自定义。一般的想法是,在每个GPDB主机上,您应该安装HDFS客户端库并执行HDFS客户端配置(例如,您可以在gpadmin usign“hdfs dfs -ls /”下从此计算机访问HDFS)
通常,“GPDB数据库管理员指南”中介绍了设置过程,可在此处找到:http://gpdb.docs.pivotal.io/4330/index.html#admin_guide/load.html