Upgrading a Highly Available Environment
For a highly available production environment, upgrade the additional Control Hub instances and update the load balancer used by Control Hub.
Step 1. Upgrade Additional Control Hub Instances
When you upgrade additional Control Hub instances for a highly available environment, use the shortened upgrade process described here.
-
Install the new version of Control Hub on the same machine as the previous version or on a separate machine.
Use one of the following installation methods to install the new version of
Control Hub: -
If you installed the RPM package on the same machine as the previous version,
rename the previous and new versions of the configuration files.
When you install the new RPM package on the same machine as the previous version, the configuration files are written to the same default directory as the previous version, /etc/dpm. The new versions of the configuration files are renamed with the following extension: .rpmnew. For example, the new version of the Control Hub configuration file is renamed to dpm.properties.rpmnew.
- In the working $DPM_CONF directory, /etc/dpm by default, rename all previous configuration files with the following extension: .old.
- Remove the following extension from all new configuration files: .rpmnew.
-
Download the JDBC driver for the relational database instance that you are
using:
- MariaDB or MySQL when Control Hub uses Java 8 - Download the MySQL JDBC driver version 5 (5.1.44 or later) from the following location: https://dev.mysql.com/downloads/connector/j/5.1.html
- MariaDB or MySQL when Control Hub uses Java 11 - Download the MySQL JDBC driver version 8 (8.0.19 or later) from the following location: https://dev.mysql.com/downloads/connector/j/8.0.html
- PostgreSQL - Download the PostgreSQL JDBC driver version 42.1.4 or later from the following location: https://jdbc.postgresql.org/download/
-
Copy the driver to the following directory:
$DPM_HOME/extra-lib
For example, copy the driver to the following directory in an RPM installation:
/opt/streamsets-dpm/extra-lib
-
Set the DPM_HOME and DPM_CONF environment variables.
- Use the following command to set the DPM_HOME environment
variable:
export DPM_HOME=<home directory>
For example:
export DPM_HOME=/opt/streamsets-dpm
- Use the following command to set the DPM_CONF environment
variable:
export DPM_CONF=<configuration directory>
For example:
export DPM_CONF=/etc/dpm
- Use the following command to set the DPM_HOME environment
variable:
-
Copy all files from the $DPM_CONF directory in the initial
Control Hub instance that you upgraded to the $DPM_CONF directory in
this additional Control Hub instance.
By copying all configuration files, you ensure that this additional Control Hub instance connects to the same load balancer, databases, SMTP account, and system Data Collector as the initially upgraded Control Hub instance.
-
Update the configuration file for each Control Hub application to define the same unique component ID used by the previous
version. Each Control Hub instance of the same version must use a unique component ID.
We recommend configuring the new version to use the same component ID as the previous version. However, you can configure the new version to use a different component ID. For example, if you install the new version on a different machine and your policy is to set the component ID to the IP address of the machine, you'd want to configure a different component ID for the new version. For example: <application name>199.57.90.24.
Modify the value of thedpm.componentId
property in these files located in the Control Hub configuration directory, $DPM_CONF:- connection-app.properties
- dpm.properties
- dynamic_preview-app.properties
- jobrunner-app.properties
- messaging-app.properties
- notification-app.properties
- pipelinestore-app.properties
- policy-app.properties
- provisioning-app.properties
- reporting-app.properties
- scheduler-app.properties
- sdp_classification-app.properties
- security-app.properties
- sla-app.properties
- timeseries-app.properties
- topology-app.properties
-
Modify and then run the security script to generate a unique authentication
token for each Control Hub application.
- If you installed the new version of Control Hub on a separate machine, make sure that the Control Hub instance can access the front end of the load balancer to communicate with the other Control Hub instances.
Step 2. Update the Load Balancer
If you are upgrading multiple Control Hub instances in a highly available production environment, update the load balancer for Control Hub.
- Control Hub backend definition
- If upgrading from version 2.7.x, define the following new backend
definitions for Control Hub:
If upgrading from version 3.0.x or 3.1.x, define the following new backend definitions for Control Hub:/dynamic_preview /policy /provisioning /reporting /scheduler /sdp_classification
/dynamic_preview /policy /reporting /scheduler /sdp_classification
- IP address and port numbers for each Control Hub instance if they differ from the previous version
- If you installed the new version of Control Hub on separate machines or if you changed the port numbers during the
upgrade process, update the IP address and port numbers for each Control Hub instance. If needed, configure both of the following port numbers for
each Control Hub instance:
- Control Hub port number. Default is 18631.
- Control Hub Admin tool port number. Default is 18632.
After you finish updating the load balancer, reload the updated configuration.