我正在尝试简单地设置一个Greengreen开源实例,并且几天来一直在碰到有关GPFDIST的相同问题!简而言之,我从头开始在CentOS 7.6上进行了完整安装(如果需要,可以提供有关设置的更多详细信息),以禁用GPORCA的方式安装OS GPDB软件版本5.18。完整的编译命令为:
./configure --prefix=/usr/local/gpdb --with-perl --with-python --with-libxml --with-gssapi --with-includes=/usr/local/gpdb/include --with-libs=/usr/local/gpdb/lib --disable-orca
这将成功编译,并且以下make
/ make install
命令也很完整,没有问题。 Greenplum数据库本身的初始化也成功完成,然后我可以进入数据库并创建表,插入数据并像平常一样运行查询。
但是,如果我尝试从外部表中进行选择,例如:
create external table test_external_table
(testing smallint
)
location ('gpfdist://mdw:8080/test_data.csv')
format 'csv' (header delimiter '|')
;
使用GPFDIST运行如下:
gpfdist -d /home/gpadmin/test/ -p 8080 -l /home/gpadmin/greenplum/logs/gpfdist_log 2>&1 &
然后我得到两个错误;一个来自外部表,另一个来自GPFDIST。如下:
External Table Returns:
ERROR: connection with gpfdist failed for gpfdist://mdw:8080/test_data.csv. effective url: http://127.0.0.1:8080/test_data.csv. error code = 104 (Connection reset by peer) (seg0 slice1 127.0.0.1:6000 pid=27962)
GPFDIST Returns:
[1]+ Segmentation fault gpfdist -d /home/gpadmin/test -p 8080 -l /home/gpadmin/greenplum/logs/gpfdist_log 2>&1
我删除了OS GPDB GitHub安装指南中未包含的所有内容(针对“裸眼”设置),因此我认为这不是造成此问题的原因。我已经尝试了所有与主机名和网络防火墙有关的事情,据我所知,这一切都是完美的。
我还从Pivotal下载了相同版本的GPDB(5.18),并同时在同一实例上安装了该版本,GPFDIST可以正常工作。
我还尝试了OS GPDB 5.17、6 beta和7 beta,但对于所有这些我都遇到相同的问题。
任何关于可能导致此问题的想法都非常受赞赏,因为我现在正慢慢地疯狂地试图解决这个问题。
非常感谢您的帮助。
-编辑-
好吧。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。然后我运行:
gdb -c core_dump.<pid>
并获得以下输出:
Core was generated by `gpfdist -d /home/gpadmin/test -p 8080 -l /home/gpadmin/greenplum/logs/gpfdist_log'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f4f2c07bdff in ?? ()
但是我绝对不知道这意味着什么...完全诚实,我现在对此有点不知所措,而且真的对如何进行下去感到困惑。
答案 0 :(得分:0)
由对等方重置的连接仅表明套接字的另一端已断开(...在这种情况下为gpfdist,因为它崩溃了)。
设置您的gpfdist并尝试向包含以下内容的托管文件中添加wget:
--header='X-GP-PROTO:0'
您需要添加标头,以避免请求被拒绝。
您可以在那里检索文件吗?还是也会崩溃?
如果崩溃,则与数据库无关-您可能需要一个核心转储来确定segfault的含义(读写权限,内存等)。
答案 1 :(得分:0)
我终于设法解决了这个问题。如果有人遇到类似的问题,请确保您正在安装Libevent 1.4 [.15]版,并且没有其他内容。
我已经安装了2.2.0,尽管Greenplum认为它很好,但实际上并不适用。不幸的是,我确实必须从头开始进行整个系统安装才能使它正常工作,因为仅在已经编译了Greenplum的旧系统上安装Libevent 1.4不适用于我。