暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Greenplum平台扩展框架(PXF)

DB宝 2023-11-10
1073

1.PXF

Greenplum平台扩展框架(PXF) 通过内置连接器提供跨异构数据源的并行、高吞吐量的数据访问和联合跨异构数据源的查询,该连接器将Greenplum数据库外部表定义映射到外部数据源。PXF源于Apache HAWQ项目。

Greenplum Platform Extension Framework(PXF)提供的连接器(connectors)可以用于访问存储在Greenplum数据库外部源中的数据。这些连接器将外部数据源映射到Greenplum数据库的外部表(external table)中。创建Greenplum数据库外部表时,你可以通过在命令中提供服务器名称和配置文件名称来标识外部数据存储和数据格式。

您可以通过Greenplum数据库查询外部表引用的数据,您也可以使用外部表将数据加载到Greenplum数据库中以获得更高的性能。

2.架构概述

GPDB集群包含一个master节点(master node)和多个segment主机(segment host)。GPDB segment主机上的PXF客户端进程为对外部表进行查询的每个segment instance分配工作线程。多个segment主机的PXF代理与外部数据存储并行通信。

连接器(Connector),服务器(Servers)和配置文件(Profiles)
连接器是一个通用的术语,他封装了读取和写入外部数据存储所需要的实现细节。PXF提供创建了与Hadoop (HDFS,Hive,Hbase),对象存储(Azure,Google Cloud Storage, Minio, S3)和sql数据库(通过jdbc)的连接器。

PXF服务器是连接器的命名配置。服务器定义提供PXF访问外部数据源所需的信息。此配置信息是特定于数据存储的,并且可以包括服务器位置,访问凭据和其他相关属性。

Greenplum数据库管理员将为每个允许Greenplum数据库用户访问的外部数据存储配置至少一个服务器定义,并在适当时发布可用的服务器名称。

默认的PXF服务是default(保留),在没有配置SERVER=时提供外部数据源的位置和访问信息。 创建外部表时,可以指定SERVER=<server_name>设置,以标识从中获取配置的服务器配置和访问外部数据存储的凭据。

GPDB数据库管理员将为每个允许GPDB用户访问的外部数据存储配置至少一个服务定义,并将根据需求发布可用的服务名。 默认的PXF服务器名为default(保留),在配置后,如果没有SERVER=<server_name>设置,则将提供外部数据源的位置和访问信息。

最后,PXF配置文件是一个命名映射,用于标识特定外部数据存储支持的特定数据格式或协议。PXF支持text,Avro,JSON,RCFile,Parquet,SequenceFile和ORC数据格式以及JDBC协议,并提供了一些内置配置文件,如以下部分所述。

3.配置PXF

GPDB集群包括一个master节点和多个segment节点。初始化和配置PXF时,可以在每个GPDB的segment上启动单个PXF JVM进程。

PXF提供到Hadoop,Hive,HBase,对象存储和外部SQL数据存储的连接器。 您必须配置PXF以支持您计划使用的连接器。

在你安装Greenplum数据库时,PXF被安装在master和segment节点上。
PXF是Java服务 它要求在每个Greenplum数据库主机上安装Java 8或Java 11。

3.1.配置目录

1.PXF安装目录
在安装Greenplum时,以下配置文件和目录将被安装在你的GPDB实例中。这些文件/目录在PXF的安装目录$GPHOME/pxf:

DirectoryDescription
apache‑tomcat/PXF的Tomcat目录
bin/PXF脚本和可执行文件目录
conf/PXF内部配置目录,这个目录包含pxf-env-default.sh和pxf-profiles-default.xml配置文件。在初始化pxf后,这个目录也会包括pxf-private.classpath文件
lib/PXF库目录
templates/PXF的配置模板

2.PXF运行目录
在初始化和启动过程中,PXF在$GPHOME/pxf创建了如下内部目录:

DirectoryDescription
pxf‑servicePXF初始化之后的PXF服务实例目录
run启动pxf后,pxf的运行目录。包含PXF catalina进程ID文件

3.PXF用户配置目录
在pxf初始化过程中,PXF使用以下的子目录和模板文件填充你选择的用户配置目录($PXF_CONF)

DirectoryDescription
conf用户可自定义的PXF配置文件位置:pxf-env.sh,pxf-log4j.properties和pxf-profiles.xml
keytabsPXF服务Kerberos秘钥文件的默认位置
lib默认的PXF用户运行库目录
logsPXF运行时间日志文件目录,包括pxf-service.log和Tomcat相关日志catalina.out. logs目录和日志文件都是gpadmin用户创建的只读文件
servers服务配置目录,每一个子目录标识服务名称。默认服务器名为default。数据库管理员也可以配置其他服务
templates连接器服务器模板文件的配置目录

3.2.安装 JAVA

在每个Greenplum数据库段主机上安装Java包 。

3.3.Initialize the PXF Service

你必须显式初始化PXF服务实例。 此一次性初始化将创建PXF服务Web应用程序并生成PXF配置文件和模板。
PXF提供了两个你可以在初始化时候使用的管理命令:

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

  • pxf init - 初始化当前节点上的pxf服务实例

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

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

GPDB实例初始化PXF之前,请确保:
1.GPDB集群是启动并且运行的
2.可以通过$PXF_CONF指定PXF用户配置目录的文件位置,并且gpadmin用户也需要对这个目录有写权限
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。
step 1.登录GPDB的master节点

$ ssh gpadmin@<gpmaster>

step 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用户配置目录(如果目录不存在)并使用用户可自定义的配置模板填充conf和templates目录。如果$PXF_CONF存在,则PXF仅更新templates目录。

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

3.4.重置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。
step 1.登录到Greenplum数据库master节点:

$ ssh gpadmin@<gpmaster>

step 2.在每个segment主机上停止PXF服务实例。例如:

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

step 3.在所有Greenplum主机上重置PXF服务实例。例如:

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

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

  1. 如果您计划使用Hadoop,Hive或HBase PXF连接器,则必须执行配置PXF Hadoop连接器中所述的配置过程。Configuring PXF Hadoop Connectors。

  2. 如果您计划使用PXF连接器访问Azure,Google云端存储,Minio或S3对象存储,则必须执行配置Azure连接,Google云端存储,Minio和S3对象存储中所述的配置过程。详见Configuring Connectors to Azure, Google Cloud Storage, Minio, and S3 Object Stores。

  3. 如果计划使用PXF JDBC Connector访问外部SQL数据库,请执行配置JDBC连接器中所述的配置过程。详见Configuring the JDBC Connector。

  4. Start PXF

4.配置PXF服务器

您可以通过PXF连接器读取数据或将数据写入外部数据存储。要访问外部数据存储,您必须提供服务器位置。您可能还需要提供客户端访问凭据和其他特定于外部数据存储的属性。PXF通过以下方式简化了对外部数据存储的配置访问:

  • 支持基于文件的连接器和用户配置

  • 提供特定于连接器的模板配置文件

PXF * Server * 定义只是一个命名配置,提供对特定外部数据存储的访问。PXF服务器名称是位于$PXF_CONF/servers/中的目录的名称。您在服务器配置中提供的信息是特定于连接器的。例如,PXF JDBC连接器服务器定义可以包括JDBC驱动程序类名称,URL,用户名和密码的设置。您还可以在JDBC服务器定义中配置特定于连接的属性和特定于会话的属性。

PXF为每个连接器提供一个服务器模板文件。此模板标识必须配置才能使用连接器的典型属性集。

您将为Greenplum数据库用户需要访问的每个外部数据存储配置服务器定义。例如,如果您需要访问两个Hadoop集群,则将为每个集群创建PXF Hadoop服务器配置。如果需要访问Oracle和MySQL数据库,则将为每个数据库创建一个或多个PXF JDBC服务器配置。

服务器配置可以包括用户访问凭据的默认设置以及外部数据存储的其他属性。您可以允许Greenplum数据库用户使用默认设置访问外部数据存储,也可以基于每个用户配置访问权限和其他属性。这使您可以在单个PXF服务器定义中使用不同的外部数据存储访问凭据来配置不同的Greenplum数据库用户。 您可以允许Greenplum数据库用户使用默认设置访问外部数据存储,也可以基于每个用户配置访问权限和其他属性。这使您可以在单个PXF服务器定义中使用不同的外部数据存储访问凭据来配置不同的Greenplum数据库用户。

4.1.服务器模板文件

PXF服务器的配置信息位于$PXF_CONF/servers/<server_name>/中的一个或多个<connector> -site.xml文件中。

PXF为每个连接器提供一个模板配置文件。初始化PXF后,这些服务器模板配置文件位于$PXF_CONF/templates/目录中:

gpadmin@gpmaster$ ls $PXF_CONF/templates
adl-site.xml hbase-site.xml jdbc-site.xml s3-site.xml
core-site.xml hdfs-site.xml mapred-site.xml wasbs-site.xml
gs-site.xml hive-site.xml minio-site.xml yarn-site.xml

例如,s3-site.xml模板文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.s3a.access.key</name>
<value>YOUR_AWS_ACCESS_KEY_ID</value>
</property>
<property>
<name>fs.s3a.secret.key</name>
<value>YOUR_AWS_SECRET_ACCESS_KEY</value>
</property>
<property>
<name>fs.s3a.fast.upload</name>
<value>true</value>
</property>
</configuration>

您可以在配置文件中以明文形式为PXF指定凭据。

Note: Hadoop连接器的模板文件不打算被修改并用于配置,因为它们仅提供所需信息的示例。您无需修改Hadoop模板,而是将几个Hadoop* -site.xml文件从Hadoop集群复制到PXF Hadoop服务器配置。

4.2.默认服务器

PXF定义了一个名为default的特殊服务器。初始化PXF时,它会自动创建一个$PXF_CONF/servers/default/目录。此目录最初为空,标识默认的PXF服务器配置。您可以配置默认PXF服务器并将其分配给任何外部数据源。例如,您可以将PXF默认服务器分配给Hadoop集群,或者分配给用户经常访问的MySQL数据库。

如果您在CREATE EXTERNAL TABLE命令LOCATION子句中省略了SERVER=<server_name>设置,则PXF将自动使用default服务器配置。

Note: 当您的Hadoop集群使用Kerberos身份验证时,您必须将Hadoop服务器配置为PXFdefault服务器。

4.3.配置服务器

将PXF连接器配置为外部数据存储时,将为该连接器添加命名的PXF服务器配置。在执行的任务中,您可以:

  1. 确定是要配置defaultPXF服务器,还是为服务器配置选择新名称。

  2. 创建目录$PXF_CONF/servers/<server_name>。

  3. 将模板或其他配置文件复制到新的服务器目录。

  4. 为模板文件中的属性填写适当的默认值。

  5. 添加环境所需的所有其他配置属性和值。

  6. 如关于配置PXF用户中所述为服务器配置配置一个或多个用户。

  7. 将服务器和用户配置同步到Greenplum数据库集群。

Note: 添加或更新PXF服务器配置后,必须将PXF配置重新同步到Greenplum数据库集群。

配置PXF服务器后,将服务器名称发布给需要访问数据存储的Greenplum数据库用户。用户只需要在创建访问外部数据存储的外部表时提供服务器名称即可。PXF从驻留在由服务器名称标识的服务器配置目录中的服务器和用户配置文件中获取外部数据源位置和访问凭据。

要配置PXF服务器,请参考连接器配置主题:

  1. 要为Hadoop配置PXF服务器,请参考配置PXF Hadoop连接器.

  2. 要为对象存储配置PXF服务器,请参阅为Azure,Google Cloud Storage,Minio和S3对象存储配置连接器.

  3. 要配置PXF JDBC服务器,请参阅配置JDBC连接器.

4.4.配置PXF用户

您可以基于每个服务器,每个Greenplum用户配置对外部数据存储的访问。

您可以通过在PXF服务器配置目录$PXF_CONF/servers/<server_name>/中提供<greenplum_user_name>-user.xml用户配置文件来为特定的Greenplum数据库用户配置外部数据存储用户访问凭据和属性。例如,您在$PXF_CONF/servers/<server_name>/bill-user.xml文件中为名为bill的Greenplum数据库用户指定属性。您可以在PXF服务器配置中配置零个,一个或多个用户。

您在用户配置文件中指定的属性是特定于连接器的。您可以在<greenplum_user_name>-user.xml配置文件中指定PXF连接器服务器支持的任何配置属性。

例如,假设您已经在名为pgsrv1的PXF JDBC服务器配置中配置了对PostgreSQL数据库的访问。要允许名为bill的Greenplum数据库用户以名为pguser1的PostgreSQL用户(密码为changeme)访问该数据库,请使用以下命令创建用户包含如下属性的配置文件$PXF_CONF/servers/pgsrv1/bill-user.xml:

<configuration>
<property>
<name>jdbc.user</name>
<value>pguser1</value>
</property>
<property>
<name>jdbc.password</name>
<value>changeme</value>
</property>
</configuration>

如果要为bill配置特定的搜索路径和较大的读取大小,则还应将以下属性添加到bill-user.xml用户配置文件中:

    <property>
<name>jdbc.session.property.search_path</name>
<value>bill_schema</value>
</property>
<property>
<name>jdbc.statement.fetchSize</name>
<value>2000</value>
</property>

对于要配置的每个PXF用户,您将:

  1. 标识Greenplum数据库用户的名称。

  2. 标识要为其配置用户访问权限的PXF服务器定义。

  3. 标识要为用户配置的每个属性的名称和值。

  4. 创建/编辑文件$PXF_CONF/servers/<server_name>/<greenplum_user_name>-user.xml,并添加外部配置块:

  5. 将在步骤3中标识的每个属性/值对添加到<greenplum_user_name>-user.xml文件中的配置块中。

  6. 如果要将PXF用户配置添加到以前配置的PXF服务器定义中,请将该用户配置同步到Greenplum数据库集群。

4.5.配置属性优先级

PXF服务器配置可能包括用于用户访问凭据的默认设置以及用于访问外部数据存储的其他属性。一些PXF连接器(例如S3和JDBC连接器)允许您通过CREATE EXTERNAL TABLE命令LOCATION子句中的自定义选项直接指定某些服务器属性。<greenplum_user_name>-user.xml文件为Greenplum数据库用户指定了外部数据存储的属性设置。

对于给定的Greenplum数据库用户,PXF使用以下优先级规则(从高到低)获取该用户的配置属性设置:

  1. 您在<server_name>/<greenplum_user_name>-user.xml中配置的属性将覆盖其他位置的属性设置。

  2. 通过CREATE EXTERNAL TABLE命令的LOCATION子句中的自定义选项指定的属性将覆盖PXF服务器配置中该属性的任何设置。

  3. 您在PXF服务器定义<server_name>中配置的属性标识默认属性值。

这些优先级规则使您可以创建一个可由多个Greenplum数据库用户访问的外部表,每个用户都有各自独特的外部数据存储用户凭据。

4.6.使用服务器配置

为了访问外部数据存储,Greenplum数据库用户在CREATE EXTERNAL TABLE命令中的LOCATION子句SERVER=<server_name>选项中指定服务器名称。用户提供的<server_name>标识服务器配置目录,PXF从该目录获取配置和凭据以访问外部数据存储。

例如,以下命令使用$PXF_CONF/servers/s3srvcfg/s3-site.xml文件中定义的服务器配置访问S3对象存储:

CREATE EXTERNAL TABLE pxf_ext_tbl(name text, orders int)
LOCATION ('pxf://BUCKET/dir/file.txt?PROFILE=s3:text&SERVER=s3srvcfg')
FORMAT 'TEXT' (delimiter=E',');

如果未提供SERVER=<server_name>设置,则PXF自动使用default服务器配置。

例如,如果default服务器配置标识了Hadoop集群,则以下示例命令将引用位于/path/to/file.txt的HDFS文件:

CREATE EXTERNAL TABLE pxf_ext_hdfs(location text, miles int)
LOCATION ('pxf://path/to/file.txt?PROFILE=hdfs:text')
FORMAT 'TEXT' (delimiter=E',');

查询或写入外部表的Greenplum数据库用户使用为<server_name>用户配置的凭据访问外部数据存储。如果没有为<server_name>配置任何用户专用的凭据,则Greenplum用户将使用为<server_name>配置的默认凭据访问外部数据存储。

5.配置PXF HADOOP连接器

配置PXF Hadoop连接器需要将配置文件从Hadoop群集复制到Greenplum master主机。如果你使用的是MapR Hadoop发行版,则还必须将某些JAR文件复制到master主机。在配置PXF Hadoop连接器之前,请确保可以将文件从Hadoop群集中的主机复制到Greenplum数据库master服务器。
在GPDB master主机上执行以下操作去配置PXF映射hadoop的连接器。在你配置连接器完成后,需要运行pxf cluster sync命令拷贝PXF的配置到Greenplum数据库集群。 在此过程中,您将使用default,或创建新的PXF服务器配置。您将Hadoop配置文件复制到Greenplum数据库master主机上的服务器配置目录。您也可以将库复制到$PXF_CONF/lib以获取MapR支持。然后,您可以将master主机上的PXF配置同步到standby和segment主机。(当您运行pxf cluster init时,PXF将创建$PXF_CONF/*目录。)

step 1.登录到GPDB master节点:

$ ssh gpadmin@<gpmaster>

step 2.确定您的PXF Hadoop服务器配置的名称。如果您的Hadoop集群是Kerberized,则必须使用defaultPXF服务器。

step 3.如果您没有使用默认的PXF服务器,请创建$PXF_HOME/servers/<server_name>目录。例如,使用以下命令创建名为hdp3的Hadoop服务器配置:

gpadmin@gpmaster$ mkdir $PXF_CONF/servers/hdp3

step 4.转到服务器目录。例如:

gpadmin@gpmaster$ cd $PXF_CONF/servers/default

gpadmin@gpmaster$ cd $PXF_CONF/servers/hdp3

step 5.PXF服务需要从core-site.xml和其他Hadoop配置文件中获取需要的信息。使用你选择的工具从你的Hadoop集群namenode节点主机上拷贝core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml文件到当前主机上(您的文件路径可能会根据使用的Hadoop发行版而有所不同)。例如,这些命令使用scp去拷贝文件:

gpadmin@gpmaster$ cd $PXF_CONF/servers/default
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/core-site.xml .
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/hdfs-site.xml .
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/mapred-site.xml .
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/yarn-site.xml .

step 6.如果你想要使用PXF的HIVE连接器访问hive表的数据,同样拷贝hive的配置到GPDB master上。例如:

gpadmin@gpmaster$ scp hiveuser@hivehost:/etc/hive/conf/hive-site.xml .

step 7.如果你想要使用PXF的HBASE连接器访问hbase表数据,同样需要拷贝hbase的配置到GPDB master上。例如:

gpadmin@gpmaster$ scp hbaseuser@hbasehost:/etc/hbase/conf/hbase-site.xml .

step 8.如果你要使用PXF访问MapR Hadoop发行版,你必须要从你的MapR拷贝匹配的JAR文件到GPDB master上(您的文件路径可能会根据使用的MapR版本而有所不同)。例如:这些是使用scp命令拷贝文件

gpadmin@gpmaster$ cd $PXF_CONF/lib
gpadmin@gpmaster$ scp mapruser@maprhost:/opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/common/lib/maprfs-5.2.2-mapr.jar .
gpadmin@gpmaster$ scp mapruser@maprhost:/opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/common/lib/hadoop-auth-2.7.0-mapr-1707.jar .
gpadmin@gpmaster$ scp mapruser@maprhost:/opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/common/hadoop-common-2.7.0-mapr-1707.jar .

step 9.同步PXF的配置到Greenplum数据库集群。例如:

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

step 10.Greenplum数据库最终用户访问Hadoop服务。默认情况下,PXF服务尝试使用GPDB的用户去验证访问HDFS, Hive, and HBase。为了支持此功能,如果要使用这些PXF连接器,则必须为Hadoop以及Hive和HBase配置代理设置。参照Configuring User Impersonation and Proxying 中的过程为Hadoop服务配置用户模拟和代理,或关闭PXF用户模拟。

step 11.授予HDFS文件和目录的读取权限,这些文件和目录将作为Greenplum数据库中的外部表进行访问。 如果启用了用户模拟(默认设置),则必须向每个Greenplum数据库用户/角色名称授予此权限,这些用户/角色名称将使用引用HDFS文件的外部表。如果未启用用户模拟,则必须将此权限授予gpadmin用户。

step 12.如果您的Hadoop集群使用Kerberos保护,则为安全HDFS配置PXF必须为每个segment主机生成Kerberos主体和密钥表。

更新hadoop配置

在PXF服务运行时,如果你想要更新Hadoop、Hive或者HBase的配置,你必须在你的GPDB集群上重新同步PXF的配置并且在每个segment节点上重启pxf服务。例如:

gpadmin@gpmaster$ cd $PXF_CONF/servers/<server_name>
gpadmin@gpmaster$ scp hiveuser@hivehost:/etc/hive/conf/hive-site.xml .
gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync

6.PXF的启动、停止和重启

PXF提供了两个管理命令:

  1. pxf cluster - 管理Greenplum数据库集群中的所有PXF服务实例
    pxf cluster工具命令在master,standby服务器以及所有Greenplum数据库segment主机上管理PXF。您可以使用该工具执行以下操作:

  • 在Greenplum数据库集群中的所有主机上初始化PXF配置。

  • 将所有主机上的PXF服务实例重置为其未初始化状态。

  • 在所有segment主机上启动和停止PXF服务实例。

  • 显示所有segment主机上的PXF服务实例的状态。

  • 将PXF配置从Greenplum数据库master主机同步到standby和所有segment主机。

pxf cluster需要一个正在运行的Greenplum数据库集群。 您必须在Greenplum数据库master主机上运行该程序。

  1. pxf - 在特定的Greenplum数据库主机上管理PXF服务实例
    pxf工具管理本地Greenplum数据库主机上的PXF配置和PXF服务实例。
    您可以在master,standby或特定segment主机上初始化或重置PXF。您还可以将PXF配置从master服务器同步到这些主机。
    您可以在特定的segment主机上启动,停止或重新启动PXF服务实例,或者显示在segment主机上运行的PXF服务实例的状态。
    (Use the pxf cluster command to initialize or reset PXF on all hosts, synchronize the PXF configuration to the Greenplum Database cluster, or to start, stop, or display the status of the PXF service instance on all segment hosts in the cluster.) (使用pxf cluster命令在所有主机上初始化或重置PXF,将PXF配置同步到Greenplum数据库集群,或者启动,停止或显示集群中所有segment主机上的PXF服务实例的状态。)

pxf cluster支持 init, start, status, stop, and sync 子命令。在Greenplum数据库master主机上运行 pxf cluster 子命令时,将在Greenplum数据库集群中的所有segment主机上执行该操作。PXF还在standby主机上运行init和sync命令。

pxf支持init, start, stop, restart, status 操作。这些操作在本地执行,也就是说,如果要在特定的Greenplum数据库segment主机上启动或停止PXF代理,需要登录到该主机并运行命令。

6.1.启动PXF

初始化PXF之后,必须在Greenplum数据库集群中的每个segment主机上启动PXF。PXF服务启动后,将以gpadmin用户身份在默认端口5888上运行。只有gpadmin用户可以启动和停止pxf服务。

如果要更改默认的PXF配置,则必须在启动PXF之前更新配置。

$PXF_CONF/conf 包含用户自定义的配置文件:

  • pxf-env.sh - 运行时配置参数

  • pxf-log4j.properties - 日志记录配置参数

  • pxf-profiles.xml - 自定义配置文件定义

您必须将对pxf-env.sh,pxf-log4j.properties或pxf-profiles.xml所做的所有变更同步到Greenplum数据库集群,并在每个segment节点上(重新)启动PXF。

在Greenplum数据库集群中启动PXF之前,请确保:

  • Greenplum数据库集群已启动并正在运行

  • PXF已经被初始化

执行以下过程以在Greenplum数据库集群中的每个segment主机上启动PXF。
step 1.登录greenplum master节点

$ ssh gpadmin@<gpmaster>

step 2.在每个segment主机上运行pxf cluster start命令启动pxf服务

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

6.2.停止PXF

如果必须停止PXF,例如如果要升级PXF,则必须在Greenplum数据库集群中的每个segment主机上停止PXF。只有gpadmin用户可以停止PXF服务
准备

在Greenplum数据库集群中停止PXF之前,请确保Greenplum数据库集群已启动并正在运行。

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

step 1.登录greenplum master节点

$ ssh gpadmin@<gpmaster>

step 2.在每个segment主机上运行pxf cluster stop命令停止pxf服务。 例如:

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

6.3.重启PXF

如果必须重新启动PXF,例如在$PXF_CONF/conf中更新了PXF用户配置文件,则可以在Greenplum数据库集群中先停止服务然后再启动PXF服务。

只有gpadmin用户可以重启PXF服务。
在Greenplum数据库集群中重新启动PXF之前,请确保Greenplum数据库集群已启动并正在运行。

执行以下过程在Greenplum数据库集群中的每个segment上重启PXF。
step 1.登录greenplum master节点:

$ ssh gpadmin@<gpmaster>

step 2.重启PXF:

gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster stop
gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster start

3.创建一个外部表

PXF实现了一个叫做pxf的GPDB协议,你可以使用这个协议去创建一个外部表。指定pxf协议的CREATE EXTERNAL TABLE命令语法如下:

CREATE [WRITABLE] EXTERNAL TABLE <table_name>
( <column_name> <data_type> [, ...] | LIKE <other_table> )
LOCATION('pxf://<path-to-data>?PROFILE=<profile_name>[&SERVER=<server_name>][&<custom-option>=<value>[...]]')
FORMAT '[TEXT|CSV|CUSTOM]' (<formatting-properties>);

在创建语句CREATE EXTERNAL TABLE中的LOCATION子句是一个URI。这个URI标识描述外部数据位置的路径和其他信息。例如:如果外部数据存储的是HDFS,则填写指定HDFS文件的绝对路径。如果外部数据存储的是HIVE,则需要指定符合模式的HIVE表名称。

使用问号(?)引入的URI的查询部分来标识PXF服务器和配置文件名称。

PXF可能需要额外的信息来读取和写入某些数据格式,可以使用LOCATION字符串的可选组件 = 来提供配置文件的信息,并通过字符串的组件提供格式信息。

Table 1. CREATE EXTERNAL TABLE参数值和描述

KeywordValue and Description
<path‑to‑data>目录,文件名,通配符模式,表名等。的语法取决于外部数据源
PROFILE=<profile_name>PXF用于访问数据的配置文件。 PXF支持Hadoop services, object stores, and other SQL databases.
SERVER=<server_name>PXF用于访问数据的命名服务器配置。可选的; 如果未指定,PXF将使用default服务器。
<custom‑option>=<value>配置文件或服务器支持的其他选项及其值
FORMAT <value>PXF支持TEXT,CSV和CUSTOM格式
<formatting‑properties>格式化配置文件支持的属性; 例如, FORMATTER或delimiter

Note: 创建PXF外部表时,不能在格式化程序规范中使用HEADER选项


文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论