There are two types of user-customizable configuration files in PXF. First are the PXF cluster configurations, the second are PXF service group configurations.
The PXF cluster configurations for the default cluster can be found at $PXF_BASE/clusters/default/conf
and include the following files:
cluster.txt
- PXF cluster configuration propertieshosts.txt
- List of hosts in the PXF cluster
The default PXF service group configurations for the default cluster can be found at $PXF_BASE/clusters/default/groups/default/conf
includes these user-customizable configuration files:
pxf-application.properties
- PXF Service application configuration propertiespxf-env.sh
- PXF command and JVM-specific runtime configuration propertiespxf-log4j2.xml
- PXF logging configuration propertiespxf-profiles.xml
- Custom PXF profile definitions
PXF Cluster Configurations
PXF cluster configuration files are required for each PXF cluster in the PXF deployment and lives in the cluster configuration directory. For the default PXF cluster, it can be found at $PXF_BASE/clusters/default/conf
.
cluster.txt
The cluster.txt
file exposes the following PXF configuration properties:
Parameter | Description | Default Value |
---|---|---|
cluster.name | The name of the PXF cluster (should be consistent with the cluster folder name) | default |
cluster.collocated | Identifies whether or not the PXF Services should be run on the same hosts as the Greenplum cluster | true |
group.default.ports | The port number where the PXF Services listen for requests. This value is consistent across all hosts in the PXF cluster. | 5888 |
hosts.txt
If the cluster.collocated
property inside cluster.txt is set to true
, then the hosts.txt
file should not exist or be empty. If the hosts.txt
file is not empty, it will be ignored in this situation.
If the cluster.collocated
property is set to false
, then the hosts.txt
file should contain a list of hosts that make up the external PXF cluster. Each hostname in the cluster should be on a separate line, and each hostname can be an IPv4 address, an alias hostname, or a Fully Qualified Domain Name (FQDN).
For example, to set the PXF external cluster to run on external-pxf-host1
and external-pxf-host2
, the hosts.txt
file should contain:
external-pxf-host1
external-pxf-host2
Modifying Cluster Level Configurations
When you update a PXF cluster configuration file, you must first stop PXF, make any necessary modifications, synchronize the changes to all PXF hosts and then start PXF again for the changes to take effect.
Procedure:
-
Stop PXF on all PXF hosts:
gpadmin@coordinator$ pxf cluster stop
-
Update the PXF cluster configuration file(s) of interest.
-
Synchronize the configuration to all hosts in the PXF cluster:
gpadmin@coordinator$ pxf cluster sync
-
Start PXF on all PXF hosts:
gpadmin@coordinator$ pxf cluster start
PXF Service Group Configurations
Each PXF cluster requires at least one PXF service group. For the default PXF cluster, the default PXF service group configuration files can be found at $PXF_BASE/clusters/default/groups/default/conf
.
In PXF 7.0.0-beta.1, there can only be one PXF service group in the PXF cluster.
pxf-application.properties
The pxf-application.properties
file exposes these PXF Service application configuration properties:
Parameter | Description | Default Value |
---|---|---|
pxf.connection.timeout | The Tomcat server connection timeout for read operations (-1 for infinite timeout). | 5m (5 minutes) |
pxf.connection.upload-timeout | The Tomcat server connection timeout for write operations (-1 for infinite timeout). | 5m (5 minutes) |
pxf.max.threads | The maximum number of PXF tomcat threads. | 200 |
pxf.task.pool.allow‑core‑thread‑timeout | Identifies whether or not core streaming threads are allowed to time out. | false |
pxf.task.pool.core-size | The number of core streaming threads. | 8 |
pxf.task.pool.queue-capacity | The capacity of the core streaming thread pool queue. | 0 |
pxf.task.pool.max-size | The maximum allowed number of core streaming threads. | pxf.max.threads if set, or 200 |
pxf.log.level | The log level for the PXF Service. | info |
pxf.fragmenter-cache.expiration | The amount of time after which an entry expires and is removed from the fragment cache. | 10s (10 seconds) |
server.address | The PXF server listen address. | 0.0.0.0 |
To change the value of a PXF Service application property, you may first need to add the property to, or uncomment the property in, the pxf-application.properties
file before you can set the new value.
pxf-env.sh
The pxf-env.sh
file exposes these PXF JVM configuration properties:
Parameter | Description | Default Value |
---|---|---|
JAVA_HOME | The path to the Java JRE home directory. | /usr/java/default |
PXF_LOG_DIR | The PXF log directory. | $PXF_BASE/clusters/default/groups/default/logs |
PXF_RUN_DIR | The PXF run directory. | $PXF_BASE/clusters/default/groups/default/run |
PXF_JVM_OPTS | The default options for the PXF Java virtual machine. | -Xmx2g -Xms1g |
PXF_OOM_KILL | Activate/deactivate PXF auto-termination on OutOfMemoryError (OOM). | true (activated) |
PXF_OOM_DUMP_PATH | The absolute path to the dump file that PXF generates on OOM. | No dump file (empty) |
PXF_LOADER_PATH | Additional directories and JARs for PXF to class-load. | (empty) |
LD_LIBRARY_PATH | Additional directories and native libraries for PXF to load. | (empty) |
To set a new value for a PXF JVM configuration property, you may first need to uncomment the property in the pxf-env.sh
file before you set the new value.
pxf-log4j2.xml
The pxf-log4j2.xml
file configures PXF and subcomponent logging. By default, PXF is configured to log at the info
level, and logs at the warn
or error
levels for some third-party libraries to reduce verbosity.
The Logging advanced configuration topic describes how to enable more verbose client-level and server-level logging for PXF.
pxf-profiles.xml
PXF defines its default profiles in the PXF server application JAR file. If you choose to add a custom profile, you configure the profile in pxf-profiles.xml
.
Modifying Service Group Level Configuration
When you update a PXF service group configuration file, you must synchronize the changes to all PXF hosts and then restart PXF for the changes to take effect.
Procedure:
-
Update the PXF service group configuration file(s) of interest.
-
Synchronize the configuration to all hosts in the PXF cluster:
gpadmin@coordinator$ pxf cluster sync
-
Restart PXF on all PXF hosts:
gpadmin@coordinator$ pxf cluster restart
Content feedback and comments