Enable High Availability for the Pulse UI (New UI) Service

The objective of High Availability (HA) is to have the Pulse User Interface (UI) on a parallel node so that if one node goes down, the other node is available and all traffic can be diverted to it.

This capability is available starting with Pulse version 4.1.2.

The user handles the Additional Load Balancers to automatically distribute the workloads.

Prerequisites: The Accelo Utility must already be installed by the client and must be an active node. To install the Accelo Utility, check Prerequisites: Docker/Podman-Based.

For a first-time installation of the Accelo Utility, contact support@acceldata.io

Illustration: Load Balancer

Illustration: Load Balancer

Steps to Deploy High Availability

Follow the steps to deploy the HA for Pulse UI.

Step 1: First Host - Amend the Active Node

Step 2: Second Host - Amend the HA Node Post Deployment

First Host - Amend the Active Node

Execute the following steps on the Active node.

  1. Replace the ports and hostname values for influx, elastic and vm sections of the following services in the <ACCELO_HOME>config/acceldata_<cluster_name>.conf file as described in the following table:

Replace the docker container-names, with the hostname on which the influx-db,__elastic, vm-select and vm-insert are deployed.

You must change the ports from the internal docker ports to the ports exposed on the active host. host6 has been used here as an example. Use the correct host name as per the your requirement.

BeforeAfter

elastic = [

{

name = "default"

host = "ad-elastic"

port = 9200

},

{

name = "fsanalytics"

host = "ad-elastic"

port = 9200

},

{

name = "nifi"

host = "ad-elastic"

port = 9200

}

]

vm = [

{

name = "default",

writeURL = "http://ad-vminsert:8480/insert/3609009724/influx",

readURL = "http://ad-vmselect:8481/select/3609009724/prometheus",

dbName = "ad_cdp710_demo",

clusterNameHash = "3609009724"

}

elastic = [

{

name = "default"

host = "host6"

port = 19013

},

{

name = "fsanalytics"

host = "host6"

port = 19013

},

{

name = "nifi"

host = "host6"

port = 19013

}

]

vm = [

{

name = "default",

writeURL = "http://host6:19043/insert/3609009724/influx",

readURL = "http://host6:19042/select/3609009724/prometheus",

dbName = "ad_cdp710_demo",

clusterNameHash = "3609009724"

}

  1. Deploy the core, and type 'Y' in all prompts:
Bash
Copy
  1. Now, restart all core components. The changes are now saved in the active node.
Bash
Copy

Second Host - Amend the HA Node Post Deployment

  1. Docker Installation
  2. Pulse CLI download and initialization
  3. Create license file under work directory and copy the contents from first host work/license
  4. In the CLI, populate the configuration yaml file by running the following command: accelo admin makeconfig ad-ha-pulse-ui. This displays a prompt asking to overwrite the config file.
  5. Type 'Y' to confirm.
  6. After the file is generated, perform the following changes highlighted in bold:

Add Line 17 and 18 if you are a Cloudera platform user.

Add the host and ports property for Alerts and Actions in the environment section.

BeforeAfter

version: "2"

services:

ad-ha-pulse-ui:

image: ad-pulse-ui

container_name: ad-ha-pulse-ui:

environment:

MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXrj0RTboRglzSSmtH8Gu0LC

MONGO_ENCRYPTED=true

MONGO_SECRET=Ah+MqxeIjflxE8u+/wcqWA==

UI_PORT=4000

LDAP_HOST=ad-ldap

LDAP_PORT=19020

DS_HOST=ad-query-estimation

DS_PORT=8181

'FEATURE_FLAGS={ "ui_regex": { "regex": "ip-([^.]+)", "index": 1 }, "rename_nav_labels":{}, "timezone": "", "experimental": true, "themes": false, "hive_const":{ "HIVE_QUERY_COST_ENABLED": false, "HIVE_MEMORY_GBHOUR_COST": 0, "HIVE_VCORE_HOUR_COST": 0 }, "spark_const": { "SPARK_QUERY_COST_ENABLED": false, "SPARK_MEMORY_GBHOUR_COST": 0, "SPARK_VCORE_HOUR_COST": 0 }, "queryRecommendations": false, "hostIsTrialORLocalhost": false, "data_temp_string": "" }'

volumes:

/etc/localtime:/etc/localtime:ro

/data01/acceldata/work/license:/etc/acceldata/license:ro

ulimits: {}

ports: 4000:4000

depends_on: []

opts: {}

restart: ""

extra_hosts: []

network_alias: []

label: HA Pulse UI

version: "2"

services:

ad-ha-pulse-ui:

image: ad-pulse-ui

container_name: ad-ha-pulse-ui:

environment:

MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXrj0RTboRglzSSmtH8Gu0LC

MONGO_ENCRYPTED=true

MONGO_SECRET=Ah+MqxeIjflxE8u+/wcqWA==

UI_PORT=4100

LDAP_HOST=ad-ldap

LDAP_PORT=19020

DS_HOST=ad-query-estimation

DS_PORT=8181

DB_HOST=<DB_HOST_IP>

DB_PORT=19030

CAP_SCHEDULER_ENABLED_YARN = false

PLATFORM = CLDR #(HWX for HDP clusters)

DASHPLOT_IP=<DASHPLOT_IP>

DASHPLOT_PORT=18080

ALERTS_IP=<ALERTS_IP>

ACTIONS_IP=<ACTIONS_IP>

ALERTS_PORT=19015

ACTIONS_PORT=19016

'FEATURE_FLAGS={ "ui_regex": { "regex": "ip-([^.]+)", "index": 1 }, "rename_nav_labels":{}, "timezone": "", "experimental": true, "themes": false, "hive_const":{ "HIVE_QUERY_COST_ENABLED": false, "HIVE_MEMORY_GBHOUR_COST": 0, "HIVE_VCORE_HOUR_COST": 0 }, "spark_const": { "SPARK_QUERY_COST_ENABLED": false, "SPARK_MEMORY_GBHOUR_COST": 0, "SPARK_VCORE_HOUR_COST": 0 }, "queryRecommendations": false, "hostIsTrialORLocalhost": false, "data_temp_string": "" }'

volumes:

/etc/localtime:/etc/localtime:ro

/data01/acceldata/config/hosts:/etc/hosts:ro

/data01/acceldata/work/license:/etc/acceldata/license:ro

ulimits: {}

ports:

4000:4000

depends_on: []

opts: {}

restart: ""

extra_hosts: []

network_alias: []

label: HA Pulse UI

If the user has LDAP and Proxy enabled on the Active node, it must be mirrored in the HA node.

  1. For optional services, ad-ldap follow LDAP integration similar to first host and update config/ldap/ldap.conf

  2. For optional services, ad-proxy follow same steps for Pulse UI TLS integration (placing certs file and removing 4000 port from Pulse UI yaml ) and one additional step for ad-ha-pulse-ui

    1. Update url mentioning ad-pulse-ui to ad-ha-pulse-ui in file config/proxy/config.toml
  3. Update either /etc/hosts entries or create a separate host file at the location config/host to add the following host entry:

Bash
Copy
  1. Optional: In case of using config/host file, update the volumes file mount in config/docker/addons/ad-ha-pulse-ui.yml :
Bash
Copy
  1. Deploy respective addons to start UI service on second host, by selecting the ad-pulse-ui, ad-ldap(optional), and ad-proxy(optional) services. ad-ha-pulse-ui is now deployed:
Bash
Copy

The deployment of High availability for Pulse UI is now complete.

VariableType to search · ESC to discard
GlossaryType to search · ESC to discard
InsertType to search · ESC to discard
No matches