开源Greenplum:从外部表中选择时发生GPFDIST错误“分段错误”

时间:2019-04-17 10:29:41

标签: greenplum

我正在尝试简单地设置一个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 ?? ()

但是我绝对不知道这意味着什么...完全诚实,我现在对此有点不知所措,而且真的对如何进行下去感到困惑。

2 个答案:

答案 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不适用于我。