我一直在尝试通过GitHub页面上的这些说明安装HAWQ群集。
它们主要工作正常,直到我到达最后一个命令hawq init cluster
。错误日志的最后一部分是:
------------------------------------------------------------------
-- Create HDFS filesystem
------------------------------------------------------------------
CREATE FILESYSTEM HDFS
(
gpfs_libfile = ""$libdir/gpfshdfs.so"",
gpfs_connect = ""gpfs_hdfs_connect"",
gpfs_disconnect = ""gpfs_hdfs_disconnect"",
gpfs_open = ""gpfs_hdfs_openfile"",
gpfs_close = ""gpfs_hdfs_closefile"",
gpfs_seek = ""gpfs_hdfs_seek"",
gpfs_tell = ""gpfs_hdfs_tell"",
gpfs_read = ""gpfs_hdfs_read"",
gpfs_write = ""gpfs_hdfs_write"",
gpfs_flush = ""gpfs_hdfs_sync"",
gpfs_delete = ""gpfs_hdfs_delete"",
gpfs_chmod = ""gpfs_hdfs_chmod"",
gpfs_mkdir = ""gpfs_hdfs_createdirectory"",
gpfs_truncate = ""gpfs_hdfs_truncate"",
gpfs_getpathinfo = ""gpfs_hdfs_getpathinfo"",
gpfs_freefileinfo = ""gpfs_hdfs_freefileinfo""
);
",,"internal_load_library","dfmgr.c",208,
child process exited with exit code 1
initdb: removing contents of data directory "/home/gpadmin/hawq-data- directory/masterdd"
Master postgres initdb failed
20171208:13:39:48:000221 hawq_init:centos7-namenode:gpadmin-[INFO]:-Master >postgres initdb failed
20171208:13:39:48:000221 hawq_init:centos7-namenode:gpadmin-[ERROR]:- Master init failed, exit
在DFMGR.C中查看,错误似乎是关于缺少的文件,该文件应该通过ereport()
输出,但我看不到它将转到STDERR或其他任何地方。
initdb
二进制存在,postgresql
也存在,并且环境变量正确设置了。
有什么想法?
如果使用Docker运行HAWQ,请确保SSHD作为root用户运行。HAWQ INIT使用本地SSH进行一些验证。
$ sudo /usr/sbin/sshd
使用initdb -D [HAWQ DATA PATH] -d
显示所有调试消息。更多的细节信息会给您一些提示。
取决于您的描述,我认为您应该检查$GPHOME/lib/postgresql
目录是否包含" fixewidth.so"。如果不是,请转到您的HAWQ源代码,contry/formatter_fixedwidth子目录。执行make;make install
。