如果在当前的Greenplum数据库中安装使用PXF,则必须在升级到新版本Greenplum数据库时升级PXF服务。

PXF升级过程描述了如何在Greenplum数据库安装中升级PXF。 此过程使用PXF.from来表示当前安装的PXF版本, PXF.to表示升级新版本的Greenplum数据库时安装的PXF版本。

大多数PXF安装不需要修改PXF配置文件,并且可以进行无缝升级

Note: 从Greenplum Database版本5.12开始,PXF不再需要安装Hadoop客户端。PXF现在捆绑了它所依赖的所有JAR文件,并在运行时加载这些JAR。

PXF升级过程分为两部分。您在升级到Greenplum数据库的新版本之前执行一个过程,之后执行一个过程:

Step 1: PXF Pre-Upgrade Actions

在升级到Greenplum数据库的新版本之前执行此过程:

  1. 登录到GPDB master节点

    1. $ ssh gpadmin@<gpmaster>
  2. 安装Stopping PXF 章节描述停止每个segment节点上的PXF

  3. 如果你想从GPDB版本5.14或更早的版本开始升级:

    1. 备份 PXF.from$GPHOME/pxf/conf/目录的配置文件。所有segment主机上的这些文件应该相同,因此您只需要从其中一个主机进行复制。 例如:

      1. gpadmin@gpmaster$ mkdir -p /save/pxf-from-conf
      2. gpadmin@gpmaster$ scp gpadmin@seghost1:/usr/local/greenplum-db/pxf/conf/* /save/pxf-from-conf/
    2. 请注意您可能已添加到PXF.from安装的任何自定义JAR文件的位置。 保存这些JAR文件的副本

  4. 升级到新版本的Greenplum数据库,然后参照Step 2: Upgrading PXF.

Step 2: Upgrading PXF

升级到新版本的Greenplum数据库后,请执行以下步骤以升级和配置PXF.to软件:

  1. 登录到GPDB master节点

    1. $ ssh gpadmin@<gpmaster>
  2. 按照Initializing PXF的描述在每个segment主机上初始化PXF。

  3. 默认情况下,在Greenplum数据库版本5.5.0及更高版本中启用PXF用户模拟。如果要从较旧的PXF.from版本升级,则必须为基础Hadoop服务配置用户模拟。有关说明,请参阅Configuring User Impersonation and Proxying,包括关闭PXF用户模拟的配置过程。

  4. 如果你想从GPDB版本5.14或更早的版本开始升级:

    1. 如果更新了PXF.from安装中的pxf-env.sh配置文件,请将这些更改重新应用于$PXF_CONF/conf/pxf-env.sh。 例如:

      1. gpadmin@gpmaster$ vi $PXF_CONF/conf/pxf-env.sh
      2. <update the file>
    2. 同样,如果您在PXF.from安装中更新了pxf-profiles.xml配置文件,请将这些更改重新应用到主机上的$PXF_CONF/conf/pxf-profiles.xml

      Note: 从Greenplum Database版本5.12开始,PXF类的包名称已更改为使用前缀org.greenplum.* 。如果要从较旧的PXF.from版本升级并自定义pxf-profiles.xml文件,则必须在重新应用时更改对org.greenplum.pxf.*的任何org.apache.hawq.pxf.*的引用。

    3. 如果更新了PXF.from安装中的pxf-log4j.properties配置文件,请将这些更改重新应用到主机上的 $PXF_CONF/conf/pxf-log4j.properties

    4. 如果在PXF.from安装中更新了pxf-public.classpath配置文件,请将文件中引用的每个JAR复制到naster主机的$PXF_CONF/lib

    5. 如果你将其他JAR文件添加到PXF.from中,请将它们复制到master主机上的$PXF_CONF/lib

    6. 从Greenplum Database版本 5.15 开始,PXF需要Hadoop配置文件放置在$PXF_CONF/servers/default目录中。如果在PXF.from安装中配置了PXF Hadoop连接器,请将/etc/<hadoop_service>/conf中的Hadoop配置文件复制到Greenplum Database主机上的$PXF_CONF/servers/default

    7. 从Greenplum Database版本 5.15 开始,PXF的默认Kerberos keytab文件位置是$PXF_CONF/keytabs。如果先前已将PXF配置为安全HDFS 且PXF密钥表文件位于PXF.from安装目录中(例如,$GPHOME/pxf/conf),请考虑将keytab文件重定位到$PXF_CONF/keytabs,或者,更新$PXF_CONF/conf/pxf-env.sh文件中的PXF_KEYTAB属性设置以引用您的keytab文件。

  5. 如果要从Greenplum数据库5.18或更早版本升级

    1. 现在,PXF捆绑了Hadoop 2.9.2版相关的JAR文件。 如果您在$PXF_CONF/lib中注册了其他与Hadoop相关的JAR文件,请确保这些库与Hadoop 2.9.2版兼容。
    2. 现在,PXF JDBC连接器支持基于文件的服务器配置。如果选择将此新功能与引用外部SQL数据库的现有外部表一起使用,请参阅配置JDBC连接器中的配置说明,以获取更多信息。
    3. 现在,PXF JDBC连接器支持语句查询超时。此特性需要JDBC驱动程序的显式支持。默认查询超时为0,请耐心等待。一些JDBC驱动程序在不完全支持语句查询超时功能的情况下支持0超时值。确保已注册的所有JDBC驱动程序都支持默认超时,或者更好的是,它完全支持此特性。 您可能需要更新JDBC驱动程序版本以获得此支持。有关使用PXF注册JAR文件的信息,请参考JDBC驱动程序JAR注册中的配置说明。
    4. 如果您打算对整数类型使用Hive分区过滤,则必须在Hadoop群集的hive-site.xml和PXF用户配置$PXF_CONF/servers/default/hive-site.xml中设置hive.metastore.integral.jdo.pushdown Hive属性。请参阅更新Hadoop配置
  6. 如果您要从Greenplum数据库5.21.1或更早版本升级:当您创建指定HiveTextHiveRC配置文件的外部表时,PXF Hive连接器不再支持在LOCATION URI中提供DELIMITER=<delim>选项。如果您以前创建了一个在LOCATION URI中指定DELIMITER的外部表,则必须删除该表,然后从LOCATION省略DELIMITER来重新创建它。您仍然需要在外部表格式设置选项中提供非默认定界符。

  7. 将PXF配置从master主机同步到standby和每个Greenplum数据库segment主机。例如:

    1. gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
  8. 按照Starting PXF章节描述在每个segment主机上启动PXF。