Title
Create new category
Edit page index title
Edit category
Edit link
CDP Multi-node, Multi-KDC, Multi-Cluster
This document provides you with a step by step process to deploy single Pulse instance for multiple Cloudera clusters with multiple KDCs.
Prerequisites
Ensure you have the following information for both clusters:
- CM URL (
https://<Alias/FQDN of the CM URL>:<CM Port>) - CM Username
- CM Password
- Spark History HDFS path & Spark3 History HDFS path
- Kafka Version
- Hbase Version
- Hive Version
- Hive Metastore DB Connection URL
- Hive Metastore Database Name
- Hive Metastore DB Username
- Hive Metastore DB Password
- Oozie DB Name
- Oozie DB URL
- Oozie DB Username
- Oozie DB Password
- Kerberos Keytab
krb5.conffile- Principal
- Kerberos Username
- cacerts/jssecacerts
- YARN Scheduler Type
- Kafka Interbroker protocol
To enable (TLS) HTTPS for Pulse Web UI Configuration using ad-proxy, ensure you have the following present:
- Certificate File: cert.crt
- Certificate Key: cert.key
- CA Certificate: ca.crt (optional)
- Decide whether to keep the HTTP port (Default: 4000) open or not
- Decide on which port to use (default: 443)
Uninstallation of Agents
Perform the following:
- To uninstall agents, you must follow the Cloudera Parcel Agent document.
- You must also remove the Pulse JARs and the configurations for Hive and Tez.
- The Acceldata team must then run the following commands for backup and uninstalling the existing Pulse application.
a. Create a backup directory:
b. To backup, copy the entire config and workdirectory:
c. Uninstall the existing Pulse setup by running the following command:
OUTPUT
- Logout from the terminal session.
- Perform the aforementioned steps for all Pulse server nodes.
Download and Load the Binaries and Docker Images
To download and load the binaries and Docker images, perform the following:
- Download the jars, hystaller, accelo binaries and docker images from the download links provided by the Acceldata team.
- Move the Docker images and jars into the following directory:
- Copy the binaries and tar files into the
/data01/imagesfolder:
- Change the directory:
- Extract the single tar file:
OUTPUT
- Load the Docker images by running the following command:
- Ensure that all the images are loaded to the server by running the following command:
Cluster Configuration
To configure the cluster, perform the following:
- Validate all the host files.
- Create the
acceldatadirectory by running the following command:
- Place the
accelobinary in the/data01/acceldatadirectory:
- Rename the
accelo.linuxbinary toaccelo:
- Change the directory:
- Run the following
accelo initcommand:
- Enter the appropriate answers when prompted.
- Source the
ad.shfile:
- To enter the Pulse version, run the
initcommand:
OUTPUT
Provide the correct Pulse version, in this case its 3.3.3
- To get the initial information, run the
accelo infocommand:
OUTPUT
- To enable multi-KDC, perform the following:
a. Modify the accelo.yml file.
b. Change IsMutliKDCclusterEnabled to true.
c. Save the file.
- To configure the cluster in Pulse, run the
config clustercommand.
- Provide appropriate answers when prompted.
- Run the
config clusterfor the second cluster.
- Perform the below mentioned steps for both the clusters.
- Edit the
acceldata.conffile for the changes for MultiNode deployment.
- Update the
elasticsection of theconnectionscollection.
- Save the file.
- Change the directory to
work/<clustername>
- Create the
override.ymlfile if not yet created.
- Enter the following code and edit as required:
- Save the file.
Copy the License
Place the license file provided by the Acceldata team in the work directory.
Deploy Core
- Deploy the Pulse core components by running the following command:
OUTPUT
- Push the configurations for all the clusters.
Configure SSL for Connectors and Streaming
If you have TLS/SSL enforced for any of the Hadoop components in the target cluster, you must mount the Java truststore files inside the following Pulse service containers:
- ad-connectors
- ad-sparkstats
- ad-streaming
- ad-kafka-connector
- ad-kafka-0-10-2-connector
- ad-fsanalyticsv2-connector
For Kafka connectors, verify the version of Kafka running in the cluster, and then generate the configurations accordingly based on that version.
These are the only services that will connect to the respective Hadoop components of the cluster over the HTTPS URI.
Ensure that the permissions of these files are set to 0655 . i.e, read-able for all the users.
It is not always necessary to have both files configured for a target cluster. Sometimes, you may only have one of the files available. In such cases, you can simply use the available file and disregard the other one.
AD-CONNECTORS & AD-SPARKSTATS
Perform the following:
- Generate the ad-core-connectors configuration file:
- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-core-connectors.ymland add the following lines under thevolumessection of bothad-connectorsandad-sparkstatsservice blocks.
- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
AD-STREAMING
Perform the following:
- Generate the ad-core configuration file:
- Edit the file in path
<$AcceloHome>/config/docker/ad-core.ymland add the following lines under thevolumessection ofad-streamingservice block.
- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
AD-FSANALYTICSV2-CONNECTOR
Perform the following:
- Generate the ad-fsanalyticsv2-connector configuration file:
- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-fsanalyticsv2-connector.ymland add the following lines under thevolumessection ofad-fsanalyticsv2-connector
- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
AD-KAFKA-CONNECTOR
Perform the following:
- Generate the ad-core-connectors configuration file:
- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-kafka-connector.ymland add the following lines under thevolumessection ofad-kafka-connector
- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
AD-KAFKA-0-10-2-CONNECTOR
Perform the following:
- Generate the ad-core-connectors configuration file:
- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-kafka-0-10-2-connector.ymland add the following lines under thevolumessection ofad-kafka-0-10-2-connector
- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
Deploy Add-ons
OUTPUT
Deploy the Pulse add-ons, and select the components that are needed for CDP Cluster2.
OUTPUT
Database Push Configuration
To push the configuration to the database, run the following code:
Updating Gauntlet in Dry Run Mode
To update Gauntlet in dry run mode, perform the following:
- Check if the
ad-core.ymlfile is present or not by running the following command:
- If the above file is not present then generate it by running the following command:
- Edit the
ad-core.ymlfile by performing the following:
a. Open the file.
b. Update the DRY_RUN_ENABLE environment variable in the ad-gauntlet section as shown below:
c. The updated file must appear as shown below:
d. Save the file.
- Restart Gauntlet service by running the following command:
Configure Gauntlet
To update the Gauntlet Contrab duration, perform the following:
- Check if the
ad-core.ymlfile is present or not by running the following command:
- If the above file is not present then generate it by running the following command:
- Edit the
ad-core.ymlfile by performing the following:
a. Open the file
b. Update the CRON_TAB_DURATION environment variable in the ad-gauntlet section as shown below:
The updated file must appear as shown below:
c. Save the file.
- Restart the Gauntlet service by running the following command:
Configuring Gauntlet for Multi-node and Multi-cluster Deployment
Perform the following:
- To generate the Gauntlet config files, run the following command:
- Change the directory to
config/gauntlet/
- Check if all the files are present or not for all the clusters or not:
- Modify the
gauntlet_elastic_<clustername>.ymlfile by running the file:
- Edit the elastic address in the file for multi-node setup.
- Modify the Elastic address for both the clusters.
- Push the configuration to the database:
- Restart the Gauntlet service:
Updating MongoDB Clean Up and Compaction Frequency In Hours
By default, when dry run is disabled, MongoDB cleanup and compaction will occur once a day. To adjust the frequency, perform the following:
- Run the following command:
- Answer the following prompts, if you are unsure about the number of days you wish to retain, then proceed with the default values.
- When presented with the following prompt, indicate the hours of the day when you want MongoDB cleanup and compaction to occur. The value must be a comma-separated list of hours in accordance with the 24-hour time notation.
- Execute the following command, and when Gauntlet runs the next time, MongoDB cleanup and compaction will be scheduled to run at the specified hours, once per hour:
Configure and Deploy FSAnlytics in the Second Pulse Server
To configure and deploy FSAnalytics in the second Pulse server, perform the following:
- Create the
acceldatadirectory by running the following command:
- Place the
accelo.linuxbinary in the/data01/acceldatadirectory:
- Rename the
accelo.linuxbinary toaccelo
- Change the directory.
- Run the following command to run
accelo init.
- Provide appropriate answers when prompted.
- Source the
ad.shfile
- To enter the Pulse version, run the
initcommand:
OUTPUT
3.3.3.
- Run accelo info to get the initial information.
OUTPUT
- Get the
Pulse Masterhostname and generate the Mongo URL by editing the below code:
- Encrypt the above string by running the following command and provide the string when prompted:
- Edit the
ad.shfor enabling the Pulse Standalone deployment. Add the following information, to thead.sh.
- Replace the
MONGO_URIwith the encrypted string obtained from step 10.
- Source the file.
- Now set the cluster.
- Copy the
fsanalyticsdirectory from the Pulse Master Server present in the below location:
Add the following to the below directory in the second cluster:
- Copy the
/krb/securitydirectory from the Pulse Master Server present in the below location:
Add the following to the below directory in the second cluster:
- Generate the
ad-fsanalyticsv2-connector.yml.
OUTPUT
- Edit the file.
- Update the following environment variables to the
ad-fs-elastic:
- MONGO_URI (Acceldata team will provide the right URI)
- MONGO_ENCRYPTED=false
- ES_HOST=<host_running_ES>
- ES_PORT=19013
Append below hostname entry in
/etc/hostsand check if the /etc/hosts file is mounted under volume section in above created file (<ACCELO_HOME>/config/docker/addons/ad-fsanalyticsv2-connector.yml)- <PULSE_CORE_HOST> ad-streaming
Run the deploy add-ons command and select FSAnalytics and FSElastic.
OUTPUT
- Since the FSAnalyticsV2 Connector has a port exposed to the outside, you will need to modify the port bound to the host. To do this, open the ad-fsanalyticsv2-connector.yml file.
- Update the
portsection of the file.
- Save the file.
- Set the cluster to the second cluster.
- Run the deploy add-ons command and select FSAnalyticsV2 Connector add-on.
OUTPUT
- Check if the two connectors are running or not.
OUTPUT
- Check if both the containers are bound to
19027and19029ports respectively.
- For running
fsaload, do set the following:
- Set the cluster to the second cluster.
- Load the second cluster using the following
fsacommand:
Enabling (TLS) HTTPS for Pulse Web UI Configuration Using ad-proxy
Deployment and Configuration
For deployment and configuration, perform the following:
- Copy the
cert.crt,cert.keyandca.crt(optional) files to$AcceloHome/config/proxy/certslocation. - Check if the
ad-core.ymlfile is present or not.
- If the
ad-core.ymlfile is not present, then generate thead-core.ymlfile.
OUTPUT
- Modify the
ad-core.ymlfile by performing the following:
a. Open the ad-core.yml file
b. Remove the ports: field in the ad-graphql section of ad-core.yml
c. The resulted ad-graphql section must appear as shown below:
d. Save the file.
- Restart the
ad-graphqlcontainer:
- Ensure that the port is not exposed to the host.
OUTPUT
- Check if there any errors in the
ad-graphqlcontainer.
- To deploy the ad-proxy add-ons, run the following command and then select Proxy from the list and press enter.
OUTPUT
- Check if any errors are there in the
ad-proxycontainer.
- You can now access the Pulse UI using
https://<pulse-server-hostname>.The default port used is443.
Configuration
If you wish to modify the SSL port to a different value, perform the following:
- Check if
ad-proxy.ymlfile is present or not
- Generate the
ad-proxy.ymlfile if its not present.
OUTPUT
- To modify the
ad-proxy.ymlfile, perform the following:
a. Open the ad-proxy.yml file
b. Change the host port in the ports list to the desired port.
The final file must appear as the following, if the host port is 6003:
c. Save the file.
- Restart the
ad-proxycontainer
- Ensure that there aren’t any errors:
- You can now access the Pulse UI using
https://<pulse-server-hostname>:6003.
Setup LDAP for the Pulse User Interface
To setup LDAP for the Pulse user interface, perform the following:
- Check if the
ldap.confis present or not.
- Run the configure command to generate the default
ldap.confif not present already:
- Expected output must appear as shown below:
- Edit the file in path
$AcceloHome/config/ldap/ldap.conf.
Configure the file with the below properties:
LDAP FQDN : FQDN where LDAP server is running
- host = [FQDN]
If port 389 is being used then
- insecureNoSSL = true
SSL root CA Certificate
- rootCA = [CERTIFICATE_FILE_PATH]
bindDN : to be used for
ldapsearch need to be member of admin groupbindPW :
passwordfor entering in database, can be removed later onceldapgets enabledbaseDN used for user search
- Eg:
(cn=users, cn=accounts, dc=accedata, dc=io)
- Eg:
Filter used for the user search
- Eg:
(objectClass=person)
- Eg:
baseDN used for group search
- Eg:
(cn= groups, cn=accounts, dc=acceldata, dc=io)
- Eg:
Group Search: Object class used for group search
- Eg:
(objectClass= posixgroup)
- Eg:
Run the following command to check if the user has search entry access and group access in the LDAP directory:
- If the file has already been generated, it will prompt for LDAP credentials to verify connectivity and configurations, as outlined in the steps below.
- Run the configure command:
- You are prompted to provide the LDAP user credentials:
- If the previous step was successful, then the following message is displayed:
- Press 'y' and click the Enter button.
- Expected output must appear as shown below:
- Push the ldap config by running the below code:
- Run the deploy add-on command.
- Select the LDAP from the list shown and click the Enter button:
Expected output must appear as below:
- Run the restart command.
- Open Pulse on the web and create default roles.
- Create an ops role with the necessary permissions, and any users who logs in via LDAP will be automatically assigned to this role.
Configure Alerts Notifications
To configure alerts notifications, perform the following:
- To set the active cluster, run the following command:
- Configure the alerts notifications by running the following command:
OUTPUT
- Set the cluster2 as the active cluster.
- Configure alerts for the second cluster as shown below:
- Set the cluster3 as the active cluster by running the following code:
- Configure the alerts for the third cluster as shown below:
- Restart the alerts notifications.
OUTPUT
For additional help, contact www.acceldata.force.com OR call our service desk +1 844 9433282
Copyright © 2026