初始化PXF

你必须显式初始化PXF服务实例。 此一次性初始化将创建PXF服务Web应用程序并生成PXF配置文件和模板。

PXF提供了两个你可以在初始化时候使用的管理命令

  • pxf cluster init - 初始化所有在GP集群中的pxf服务实例
  • pxf init - 初始化当前节点上的pxf服务实例

PXF还提供了类似的reset命令,可用于重置PXF配置。

PXF配置属性

PXF同时支持内部的和用户自定义的配置属性。初始化PXF会生成PXF内部配置文件,并设置特定于您的配置的默认属性。初始化PXF还会为用户自定义设置生成配置文件模板,例如自定义配置文件和PXF运行时间和日志记录设置。

PXF内部配置文件位于$GPHOME/pxf/conf目录,在初始化PXF时,你可以通过指定环境变量$PXF_CONF来配置用户目录。如果在初始化PXF之前未设置$PXF_CONF,PXF可能会在初始化过程中提示您接受或拒绝默认用户配置目录$HOME/pxf

Note: 选择可以备份的$PXF_CONF位置,并确保他在GPDB安装目录之外。

在初始化期间,PXF会根据需要创建$PXF_CONF目录然后使用子目录和模板文件填充他。有关这些目录和内容的列表,可以参照PXF User Configuration Directories

准备

GPDB实例初始化PXF之前,请确保:

  • GPDB集群是启动并且运行的
  • 可以通过$PXF_CONF指定PXF用户配置目录的文件位置,并且gpadmin用户也需要对这个目录有写权限

过程

执行一下流程确保在你的GPDB集群的每个节点初始化PXF。

  1. 登录GPDB的master节点

    $ ssh gpadmin@<gpmaster>
    
  2. 运行pxf cluster init命令会在master,standby节点和所有的segment节点主机上初始化PXF服务。如下命令指定/usr/local/greenplum-pxf作为pxf初始化的用户配置目录

    gpadmin@gpmaster$ PXF_CONF=/usr/local/greenplum-pxf $GPHOME/pxf/bin/pxf cluster init
    

    init命令创建了pxf网页应用和pxf内部配置。init命令也创建了$PXF_CONF用户配置目录(如果目录不存在)并使用用户可自定义的配置模板填充conftemplates目录。如果$PXF_CONF存在,则PXF仅更新templates目录。

    Note:PXF服务只运行在segment主机上,然而pxf cluster init命令也会安装在GPDB的master和standby主机上创建PXF用户配置目录。

重置PXF

如果需要,可以将PXF重置为其未初始化状态。如果您指定了错误的PXF_CONF目录,或者您想从头开始初始化过程,则可以选择重置PXF。

重置PXF时,PXF会提示您确认操作。如果确认,PXF将删除以下运行时文件和目录(其中PXF_HOME=$GPHOME/pxf):

  • $PXF_HOME/conf/pxf-private.classpath
  • $PXF_HOME/pxf-service
  • $PXF_HOME/run

重置操作期间PXF不会删除$PXF_CONF目录。

必须先在segment主机上停止PXF服务实例,然后才能在主机上重置PXF。

步骤

执行以下过程在Greenplum数据库集群中的每个segment主机上重置PXF。

  1. 登录到Greenplum数据库master节点:

    $ ssh gpadmin@<gpmaster>
    
  2. 在每个segment主机上停止PXF服务实例。例如:

    gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster stop
    
  3. 在所有Greenplum主机上重置PXF服务实例。例如:

    gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster reset
    

注意: 重置PXF之后,必须初始化并启动PXF才能再次使用该服务。