2016-05-16 50 views
0

在Centos7.1上构建incubator-hawq后,我尝试初始化它。但低于发生错误:Hawq初始化失败 - initdb需要“postgres”

20160516:18:10:43:002036 hawqinit.sh:host-172-16-0-105:hawqadmin-[INFO]:-Loading hawq_toolkit... 
ALTER ROLE 
20160516:18:10:44:001766 hawq_init:host-172-16-0-105:hawqadmin-[INFO]:-20160516:18:10:43:002036 hawqinit.sh:host-172-16-0-105:hawqadmin-[INFO]:-Loading hawq_toolkit... 
20160516:18:10:44:001766 hawq_init:host-172-16-0-105:hawqadmin-[INFO]:-Master init successfully 
20160516:18:10:44:001766 hawq_init:host-172-16-0-105:hawqadmin-[INFO]:-Init segments in list: ['hawq-master'] 
20160516:18:10:44:001766 hawq_init:host-172-16-0-105:hawqadmin-[DEBUG]:-Start to init segment on node 'hawq-master' 
20160516:18:10:44:001766 hawq_init:host-172-16-0-105:hawqadmin-[INFO]:-Total segment number is: 1 
fgets failure: Success 
The program "postgres" is needed by initdb but was either not found in the same directory as "/usr/hawq/bin/initdb" or failed unexpectedly. 
Check your installation; "postgres -V" may have more information. 
20160516:18:10:45:002318 hawqinit.sh:host-172-16-0-105:hawqadmin-[ERROR]:-Postgres initdb failed 
20160516:18:10:45:002318 hawqinit.sh:host-172-16-0-105:hawqadmin-[ERROR]:-Segment init failed on host-172-16-0-105 
20160516:18:10:45:001766 hawq_init:host-172-16-0-105:hawqadmin-[INFO]:-20160516:18:10:45:002318 hawqinit.sh:host-172-16-0-105:hawqadmin-[ERROR]:-Postgres initdb failed 
20160516:18:10:45:002318 hawqinit.sh:host-172-16-0-105:hawqadmin-[ERROR]:-Segment init failed on host-172-16-0-105 
20160516:18:10:45:001766 hawq_init:host-172-16-0-105:hawqadmin-[ERROR]:-HAWQ init failed on hawq-master 
20160516:18:10:46:001766 hawq_init:host-172-16-0-105:hawqadmin-[INFO]:-0 of 1 segments init successfully 
20160516:18:10:46:001766 hawq_init:host-172-16-0-105:hawqadmin-[ERROR]:-Segments init failed, exit 

当我键入命令后,如下图:

[[email protected] hawqAdminLogs]$ postgres -V 
postgres (HAWQ) 8.2.15 

有什么建议?谢谢!

回答

0

看起来你可能已经在不同的目录下安装了hawq二进制文件。请检查下面的

1.确保你拥有所有正确的道路设置

  • 检查hawq initdb的二进制文件是否有在/ usr/hawq/bin /目录
  • +0

    @partheesh_nair首先,什么是正确的路径? PATH应包含哪些内容?其次,hawq initdb二进制文件位于/ usr/hawq/bin /目录中。 –

    1

    如果“postgres -V”有效,那意味着postgres二进制文件很好。

    在你做 “hawq初始化集群”,请确保:

    1)$ GPHOME在greenplum_path.sh正确设置为hawq二进制,即,在/ usr/hawq的目录,你的情况

    2)源$ GPHOME/greenplum_path.sh

    3)检查是否在initdb和Postgres二进制是在$ GPHOME/bin中

    1

    从你上述粘贴的错误,2个可能的原因:

    (1)调用的二进制文件postgres不是/usr/hawq/bin/postgres,您可以使用which postgres来检查路径。

    (2)postgres的依赖库可能是错误的。您可以使用ldd for linux或otool for mac打印所有相关的lib路径,并检查它们。

    此外,如果init hawq出现任何错误,请检查登录~/hawqAdminLogs/,您可能会发现具体的错误信息。

    希望它能帮助你找出根本原因。

    0
    1. 确保你已经successed编译hawq并安装它们
    2. 检查的Postgres是在initdb的
    3. 同一目录。如果有超过1级的Postgres在你的电脑,确保Postgres的的路径(与initdb相同的目录)在你的PATH中。
    1

    最近我在初始化群集时遇到了同样的错误。
    Postgres -V显示正确的版本,which postgres显示/usr/local/hawq/bin/postgres,路径已经设置,仍然面临以上错误。
    最后通过将LD_LIBRARY_PATH设置为/usr/local/hawq/lib/并通过.bashrc文件获得。