如果在当前的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或更早的版本开始升级:
备份 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/
请注意您可能已添加到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或更早的版本开始升级:
如果更新了PXF.from安装中的
pxf-env.sh
配置文件,请将这些更改重新应用于$PXF_CONF/conf/pxf-env.sh
。 例如:gpadmin@gpmaster$ vi $PXF_CONF/conf/pxf-env.sh
<update the file>
同样,如果您在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.*
的引用。如果更新了PXF.from安装中的
pxf-log4j.properties
配置文件,请将这些更改重新应用到主机上的$PXF_CONF/conf/pxf-log4j.properties
如果在PXF.from安装中更新了
pxf-public.classpath
配置文件,请将文件中引用的每个JAR复制到naster主机的$PXF_CONF/lib
如果你将其他JAR文件添加到PXF.from中,请将它们复制到master主机上的
$PXF_CONF/lib
从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
从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或更早版本升级:
- 现在,PXF捆绑了Hadoop 2.9.2版相关的JAR文件。 如果您在
$PXF_CONF/lib
中注册了其他与Hadoop相关的JAR文件,请确保这些库与Hadoop 2.9.2版兼容。 - 现在,PXF JDBC连接器支持基于文件的服务器配置。如果选择将此新功能与引用外部SQL数据库的现有外部表一起使用,请参阅配置JDBC连接器中的配置说明,以获取更多信息。
- 现在,PXF JDBC连接器支持语句查询超时。此特性需要JDBC驱动程序的显式支持。默认查询超时为
0
,请耐心等待。一些JDBC驱动程序在不完全支持语句查询超时功能的情况下支持0
超时值。确保已注册的所有JDBC驱动程序都支持默认超时,或者更好的是,它完全支持此特性。 您可能需要更新JDBC驱动程序版本以获得此支持。有关使用PXF注册JAR文件的信息,请参考JDBC驱动程序JAR注册中的配置说明。 - 如果您打算对整数类型使用Hive分区过滤,则必须在Hadoop群集的
hive-site.xml
和PXF用户配置$PXF_CONF/servers/default/hive-site.xml
中设置hive.metastore.integral.jdo.pushdown
Hive属性。请参阅更新Hadoop配置。
- 现在,PXF捆绑了Hadoop 2.9.2版相关的JAR文件。 如果您在
如果您要从Greenplum数据库5.21.1或更早版本升级:当您创建指定
HiveText
或HiveRC
配置文件的外部表时,PXF Hive连接器不再支持在LOCATION
URI中提供DELIMITER=<delim>
选项。如果您以前创建了一个在LOCATION
URI中指定DELIMITER
的外部表,则必须删除该表,然后从LOCATION
省略DELIMITER
来重新创建它。您仍然需要在外部表格式设置选项中提供非默认定界符。将PXF配置从master主机同步到standby和每个Greenplum数据库segment主机。例如:
gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
按照Starting PXF章节描述在每个segment主机上启动PXF。