Greenplum Database Ports and Protocols

Greenplum Database Ports and Protocols

Greenplum Database clients connect with TCP to the Greenplum master instance at the client connection port, 5432 by default. The listen port can be reconfigured in the postgresql.conf configuration file. Client connections use the PostgreSQL libpq API. The psql command-line interface, several Greenplum utilities, and language-specific programming APIs all either use the libpq library directly or implement the libpq protocol internally.

Each segment instance also has a client connection port, used solely by the master instance to coordinate database operations with the segments. The gpstate -p command, executed on the Greenplum master, lists the port assignments for the Greenplum master and the primary segments and mirrors. For example:
[gpadmin@mdw ~]$ gpstate -p
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-Starting gpstate with args: -p
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.6.0 build 62994'
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.6.0 build 62994) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jul 24 2015 11:35:08'
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:--Master segment instance  /data/master/gpseg-1  port = 5432
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:--Segment instance port assignments
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-----------------------------------
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   Host   Datadir                Port
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw1   /data/primary/gpseg0   40000
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw2   /data/mirror/gpseg0    50000
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw2   /data/primary/gpseg1   40000
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw1   /data/mirror/gpseg1    50001
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw3   /data/primary/gpseg2   40000
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw4   /data/mirror/gpseg2    50000
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw4   /data/primary/gpseg3   40000
20160126:15:40:22:028389 gpstate:mdw:gpadmin-[INFO]:-   sdw3   /data/mirror/gpseg3    50001

Additional Greenplum Database network connections are created for features such as standby replication, segment mirroring, statistics collection, and data exchange between segments. Some persistent connections are established when the database starts up and other transient connections are created during operations such as query execution. Transient connections for query execution processes, data movement, and statistics collection use available ports in the range 1025 to 65535 with both TCP and UDP protocols.

Some add-on products and services that work with Greenplum Database have additional networking requirements. The following table lists ports and protocols used within the Greenplum cluster, and includes services and applications that integrate with Greenplum Database.

Table 1. Greenplum Database Ports and Protocols
Service Protocol/Port Description
Master SQL client connection TCP 5432, libpq SQL client connection port on the Greenplum master host. Supports clients using the PostgreSQL libpq API. Configurable.
Segment SQL client connection varies, libpq The SQL client connection port for a segment instance. Each primary and mirror segment on a host must have a unique port. Ports are assigned when the Greenplum system is initialized or expanded. The gp_segment_configuration system catalog records port numbers for each segment in the port column. Run gpstate -p to view the ports in use.
Segment mirroring port varies, libpq The port where a segment receives mirrored blocks from its primary. The port is assigned when the mirror is set up. The port number is stored in the gp_segment_configuration system catalog in the mirror_port column.
Greenplum Database Interconnect UDP 1025-65535, dynamically allocated The Interconnect transports database tuples between Greenplum segments during query execution.
Standby master client listener TCP 5432, libpq SQL client connection port on the standby master host. Usually the same as the master client connection port. Configure with the gpinitstandby utility -P option.
Standby master replicator TCP 1025-65535, gpsyncmaster The gpsyncmaster process on the master host establishes a connection to the secondary master host to replicate the master's log to the standby master.
Greenplum database file load and transfer utilities: gpfdist, gpload, gptransfer TCP 8080, HTTP

TCP 9000, HTTPS

The gpfdist file serving utility can run on Greenplum hosts or external hosts. Specify the connection port with the -p option when starting the server.

The gpload and gptransfer utilities run one or more instances of gpfdist with ports or port ranges specified in a configuration file.

GPCC agents TCP 8888 Connection port for GPCC agents executing on each Greenplum host. Configure by setting the gpperfmon_port configuration variable in postgresql.conf on master and segment hosts.
Backup completion notification TCP 25, TCP 587, SMTP The gpcrondump backup utility can optionally send email to a list of email addresses at completion of a backup. The SMTP service must be enabled on the Greenplum master host.
Greenplum Database secure shell (SSH): gpssh, gpscp, gpssh-exkeys, gppkg, gpseginstall TCP 22, SSH Many Greenplum utilities use scp and ssh to transfer files between hosts and manage the Greenplum system within the cluster.
gphdfs TCP 8020 The gphdfs protocol allows access to data in a Hadoop file system via Greenplum external tables. The URL in the LOCATION clause of the CREATE EXTERNAL TABLE command specifies the host address and port number for the Hadoop namenode service.
Symantec NetBackup TCP/UDB 1556, veritas-pbx The Symantec NetBackup client network port.
TCP 13724, vnetd Symantec NetBackup vnetd communication port.
Pgbouncer connection pooler TCP, libpq The pgbouncer connection pooler runs between libpq clients and Greenplum (or PostgreSQL) databases. It can be run on the Greenplum master host, but running it on a host outside of the Greenplum cluster is recommended. When it runs on a separate host, pgbouncer can act as a warm standby mechanism for the Greenplum master host, switching to the Greenplum standby host without requiring clients to reconfigure. Set the client connection port and the Greenplum master host address and port in the pgbouncer.ini configuration file.
stunnel SSL proxy TCP, ssh, libpq A stunnel SSL proxy can be used to add SSL support for database clients accessing the database through a pgbouncer connection pool. A secure tunnel can be set up by setting up stunnel on the client and the pgbouncer host. Newer versions of stunnel that support encrypted libpq connections only require stunnel on the pgbouncer host. The stunnel proxy's connection ports and the pgbouncer host and port are specified in the stunnel.conf configuration file.