您可以使用PXF访问Azure Data Lake,Azure Blob存储和Google Cloud Storage对象存储。这个章节主要描述如何配置PXF连接器访问这个外部数据源。
如果您不打算使用PXF对象存储连接器,则不需要执行此过程。
对象存储配置
要访问对象存储中的数据,必须提供服务器位置和客户端凭据。配置PXF对象库连接器时,请为连接器添加至少一个名为PXF服务器的配置,如配置PXF服务器中所述。
PXF为每个对象存储连接器提供了一个模板配置文件。 这些模板文件位于$PXF_CONF/templates/
目录中。
Azure Blob存储服务配置
Azure Blob存储服务的默认配置文件是$PXF_CONF/templates/wasbs-site.xml
。如果你想要配置Azure Blob存储服务,你需要提供如下的配置项并且替换模板中的值。
Property | Description | Value |
---|---|---|
fs.adl.oauth2.access.token.provider.type | 令牌类型 | 必须指定ClientCredential . |
fs.azure.account.key.<YOUR_AZURE_BLOB_STORAGE_ACCOUNT_NAME>.blob.core.windows.net | Azure帐户密钥 | 用你的账户秘钥替换 |
fs.AbstractFileSystem.wasbs.impl | 文件系统类名称 | 必须指定org.apache.hadoop.fs.azure.Wasbs |
Azure数据湖服务配置
Azure数据湖服务默认模板文件是$PXF_CONF/templates/adl-site.xml
,当你配置Azure数据湖服务时需要配置如下的配置项并替换模板中的值:
Property | Description | Value |
---|---|---|
fs.adl.oauth2.access.token.provider.type | 令牌类型 | 必须指定ClientCredential . |
fs.adl.oauth2.refresh.url | 要连接的Azure结束位置 | Your refresh URL. |
fs.adl.oauth2.client.id | Azure账户的客户端ID | Your client ID (UUID). |
fs.adl.oauth2.credential | Azure账户的客户端ID的密码 | Your password. |
Google Cloud Storage服务配置
Google Cloud Storage服务默认配置模板文件是$PXF_CONF/templates/gs-site.xml
,当你配置Google Cloud Storage服务的时候需要修改如下的配置项和值:
Property | Description | Value |
---|---|---|
google.cloud.auth.service.account.enable | 启用服务帐户授权 | Must specify true . |
google.cloud.auth.service.account.json.keyfile | Google Storage的秘钥文件 | Path to your key file. |
fs.AbstractFileSystem.gs.impl | 文件系统类名称 | Must specify com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS . |
示例服务器配置过程
在配置对象存储连接器服务器之前,请确保已初始化PXF。
在此过程中,您需要在Greenplum数据库master主机上的$PXF_CONF/servers
目录中为Google Cloud Storate(GCS)连接器命名并添加PXF服务器配置。 然后,您可以使用pxf cluster sync
命令将服务器配置同步到Greenplum数据库集群。
登录到GPDB master主机
$ ssh gpadmin@<gpmaster>
选择服务器的名称。 您将为需要引用对象存储中文件的最终用户提供名称。
创建
$PXF_HOME/servers/<server_name>
目录。 例如,使用以下命令为名为gs_public
的Google Cloud Storage服务器创建服务器配置:gpadmin@gpmaster$ mkdir $PXF_CONF/servers/gs_public
将GCS的PXF模板文件复制到服务器配置目录。 例如:
gpadmin@gpmaster$ cp $PXF_CONF/templates/gs-site.xml $PXF_CONF/servers/gs_public/
在您选择的编辑器中打开模板服务器配置文件,并为您的环境提供适当的属性值。 例如,如果您的Google Cloud Storage密钥文件位于
/home/gpadmin/keys/gcs-account.key.json
中:<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>google.cloud.auth.service.account.enable</name>
<value>true</value>
</property>
<property>
<name>google.cloud.auth.service.account.json.keyfile</name>
<value>/home/gpadmin/keys/gcs-account.key.json</value>
</property>
<property>
<name>fs.AbstractFileSystem.gs.impl</name>
<value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
</property>
</configuration>
保存更改并退出编辑器。
使用
pxf cluster sync
命令将新的服务器配置复制到Greenplum数据库集群。 例如:gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync