升级PXF
如果在当前的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
- GPDB升级到一个新的版本
- Step 2: Upgrading PXF GPDB升级到一个新的版本
Step 1: PXF Pre-Upgrade Actions
在升级到Greenplum数据库的新版本之前执行此过程:
- 登录到GPDB master节点
$ ssh gpadmin@<gpmaster>
- 安装Stopping PXF 章节描述停止每个segment节点上的PXF
- 如果你想从GPDB版本5.14或更早的版本开始升级:
1. 备份 *PXF.from* 在`$GPHOME/pxf/conf/`目录的配置文件。所有segment主机上的这些文件应该相同,因此您只需要从其中一个主机进行复制。 例如:
```
gpadmin@gpmaster$ mkdir -p /save/pxf-from-conf
gpadmin@gpmaster$ scp gpadmin@seghost1:/usr/local/greenplum-db/pxf/conf/* /save/pxf-from-conf/
```
2. 请注意您可能已添加到*PXF.from*安装的任何自定义JAR文件的位置。 保存这些JAR文件的副本
- 升级到新版本的Greenplum数据库,然后参照Step 2: Upgrading PXF.
Step 2: Upgrading PXF
升级到新版本的Greenplum数据库后,请执行以下步骤以升级和配置PXF.to软件:
- 登录到GPDB master节点
$ ssh gpadmin@<gpmaster>
- 按照Initializing PXF的描述在每个segment主机上初始化PXF。
- 默认情况下,在Greenplum数据库版本5.5.0及更高版本中启用PXF用户模拟。如果要从较旧的PXF.from版本升级,则必须为基础Hadoop服务配置用户模拟。有关说明,请参阅Configuring User Impersonation and Proxying,包括关闭PXF用户模拟的配置过程。
- 如果你想从GPDB版本5.14或更早的版本开始升级:
1. 如果更新了*PXF.from*安装中的`pxf-env.sh`配置文件,请将这些更改重新应用于`$PXF_CONF/conf/pxf-env.sh`。 例如:
```
gpadmin@gpmaster$ vi $PXF_CONF/conf/pxf-env.sh
<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文件。
- 如果要从Greenplum数据库5.18或更早版本升级:
1. 现在,PXF捆绑了Hadoop 2\.9\.2版相关的JAR文件。 如果您在`$PXF_CONF/lib`中注册了其他与Hadoop相关的JAR文件,请确保这些库与Hadoop 2\.9\.2版兼容。
2. 现在,PXF JDBC连接器支持基于文件的服务器配置。如果选择将此新功能与引用外部SQL数据库的现有外部表一起使用,请参阅[配置JDBC连接器](/v6/pxf/jdbc_cfg.html)中的配置说明,以获取更多信息。
3. 现在,PXF JDBC连接器支持语句查询超时。此特性需要JDBC驱动程序的显式支持。默认查询超时为`0`,请耐心等待。一些JDBC驱动程序在不完全支持语句查询超时功能的情况下支持`0`超时值。确保已注册的所有JDBC驱动程序都支持默认超时,或者更好的是,它完全支持此特性。 您可能需要更新JDBC驱动程序版本以获得此支持。有关使用PXF注册JAR文件的信息,请参考[JDBC驱动程序JAR注册](/v6/pxf/jdbc_cfg.html#cfg_jar)中的配置说明。
4. 如果您打算对整数类型使用Hive分区过滤,则必须在Hadoop群集的`hive-site.xml`和PXF用户配置`$PXF_CONF/servers/default/hive-site.xml`中设置`hive.metastore.integral.jdo.pushdown` Hive属性。请参阅[更新Hadoop配置](/v6/pxf/client_instcfg.html#client-cfg-update)。
- 如果您要从Greenplum数据库5.21.1或更早版本升级:当您创建指定
HiveText或HiveRC配置文件的外部表时,PXF Hive连接器不再支持在LOCATIONURI中提供DELIMITER=<delim>选项。如果您以前创建了一个在LOCATIONURI中指定DELIMITER的外部表,则必须删除该表,然后从LOCATION省略DELIMITER来重新创建它。您仍然需要在外部表格式设置选项中提供非默认定界符。 - 将PXF配置从master主机同步到standby和每个Greenplum数据库segment主机。例如:
gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
- 按照Starting PXF章节描述在每个segment主机上启动PXF。