Title
Create new category
Edit page index title
Edit category
Edit link
CDP Deployment for Single KDC
This document provides a step by step process to deploy single Pulse instance for Cloudera clusters with single KDC.
Prerequisites
Keep the following information handy:
- 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.conf file
- Principal
- Kerberos Username
- cacerts/jssecacerts
- YARN Scheduler Type
- Kafka Interbroker protocol
- 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
- For uninstalling agents, you must follow the Cloudera Parcel Agent Uninstall doc.
- You must also remove the Pulse JARS and the configuration for Hive and Tez.
- Acceldata will then perform the following command for backup and uninstalling the existing Pulse.
a. Create a backup directory.
xxxxxxxxxxmkdir -p /data01/backupb. For backup, we can copy the whole config and work dir.
xxxxxxxxxxcp -R $AcceloHome/config /data01/backup/cp -R $AcceloHome/work /data01/backup/c. Uninstall the existing Pulse setup by running the following command:
xxxxxxxxxxaccelo uninstall localOUTPUT
[root@nifihost1:data01 (ad-default)]$ accelo uninstall local✗ You're about to uninstall the local AccelData setup. This will also DELETE all persistent data from the current node. However, NONE of the remote no✔ You're about to uninstall the local AccelData setup. This will also DELETE all persistent data from the current node. However, NONE of the remote no✔ You're about to uninstall the local AccelData setup. This will also DELETE all persistent data from the current node. However, NONE of the remote noYou're about to uninstall the local AccelData setup. This will also DELETE all persistent data from the current node. However, NONE of the remote nodes will be affected. Please confirm your action [y/n]: : yWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DBUninstalling the AccelData components from local machine ...d. Logout from the terminal session.
Download the Binaries and Docker Images and Load Them
- Download the jars, hystaller, accelo binaries, and docker images from the download links provided by Acceldata.
- Move the docker images and jars in the following directory:
xxxxxxxxxxmkdir -p /data01/images- Copy the binaries and tar files in to the
/data01/imagesfolder.
xxxxxxxxxxcp </path/to/binaries/tar> /data01/images- Change the directory.
xxxxxxxxxxcd /data01/images- Extract the single tar file.
xxxxxxxxxxtar xvf <name_of_tar_file>.tarOUTPUT
- Load the Docker images by running the following command:
- Check if all the images are loaded into the server.
Config Cluster
- Validate the all the hosts file.
- Create the
acceldatadir by running the following command:
- Copy the Spark hosts and Zookeeper hosts file in
acceldatadirectory, by running the following command:
- Place the
accelobinary in the/data01/acceldatadirectory.
- Rename the
accelo.linuxbinary toaccelo.
- Change the directory.
- Run the following command to do
accelo init:
- Enter the appropriate answers when prompted.
- Source the
ad.shfile.
- Run the
initcommand to provide the Pulse version.
OUTPUT
Provide the correct Pulse version, in this case it will be 3.3.3.
- Now run
accelo infocommand to get the initial info.
OUTPUT
- Run the
config clustercommand to configure the cluster in Pulse.
- Provide appropriate answers when prompted.
Copy the License
Place the license file provided by Acceldata in the work directory.
Deploy Core
Deploy the Pulse core components by running the following command:
OUTPUT
Configure SSL For Connectors and Streaming
If you have TLS/SSL enforced for any of the Hadoop components in the target cluster, you have to bind-mount the Java truststore files inside the containers for the following Pulse services.
- ad-connectors
- ad-sparkstats
- ad-streaming
- ad-kafka-connector
- ad-kafka-0-10-2-connector
- ad-fsanalyticsv2-connector
For Kafka connectors, first, verify the version of Kafka running in your cluster, and then generate the configurations accordingly.
Only these services will establish connections to the corresponding Hadoop components of the cluster via the HTTPS URI.
Ensure that the permissions of these files are set to 0655 . i.e, read-able for all the users.
It's not obligatory to have both configuration files available for a target cluster. Sometimes, you might only have one of the files accessible. In such cases, you can simply utilize the available file and disregard the other.
AD-CONNECTORS & AD-SPARKSTATS
- Generate the ad-core-connectors configuration file if not present:
- 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
- Generate the ad-core configuration file if not present:
- 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
- Generate the ad-fsanalyticsv2-connector configuration file if not present:
- 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
- Generate the ad-core-connectors configuration file if not present:
- 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
- Generate the ad-core-connectors configuration file if not present:
- 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 Addons
Run the following command to deploy the Pulse addons, and then select the components that are needed for Spark standalone:
OUTPUT
Configure Alerts Notifications
- For setting the active cluster, run the following command:
- Configure the alerts notifications.
OUTPUT
- Set the cluster2 as the active cluster.
- Configure the alerts for the second cluster.
- Set the cluster3 as the active cluster.
- Configure the alerts for the third cluster.
- Restart the alerts notifications.
OUTPUT
Database Push Configuration
Run the following command to push config to db:
Configure Gauntlet
Updating the Gauntlet Crontab Duration
- 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.
a. Open the file.
b. Update the CRON_TAB_DURATION env variable in the ad-gauntlet section.
This makes gauntlet run every two days at midnight.
c. The updated file will look something like this:
d. Save the file.
- Restart gauntlet service by running the following command:
Updating the Gauntlet Dry Run Mode
- 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.
a. Open the file.
b. Update the DRY_RUN_ENABLE env variable in the ad-gauntlet section.
This will make the gauntlet delete the older elastic indices and MongoDB data.
c. The updated file will look something like this:
d. Save the file.
- Restart gauntlet service by running the following command:
Configuring Gauntlet for Multi Node and Multi Cluster Deployment
- Run the following command to generate the gauntlet config files:
- Change the dir to
config/gauntlet/.
- Check if all the files are present or not for all the clusters or not.
- Modify the
gauntlet_elastic_<clustername>.ymlfile.
- Edit the elastic address in the file for multi node setup.
- Modify the elastic address for both clusters.
- Push the config to database.
- Restart the gauntlet service.
Updating MongoDB Cleanup and Compaction Frequency in Hours
By default, when dry run is disabled MongoDB cleanup and compaction will run once a day. To configure the frequency, follow the steps listed below:
- Run the following command:
- Answer the prompts. If you’re unsure about how many days you wish to retain, then proceed with the default values.
- When the following prompt comes up, specify the hours of the day during which you would like MongoDB clean up and compaction to run. The value must be a CSV of hours as per the 24 hour time notation.
- Run the following command. When gauntlet runs the next time, MongoDB clean up and compaction will run at the specified hours, once per hour.
Enabling (TLS) HTTPS for Pulse Web UI Configuration Using ad-proxy
Deployment and Configuration
- Copy the
cert.crt,cert.keyandca.crt(optional) files to$AcceloHome/config/proxy/certslocation. - Check if
ad-core.ymlfile is present or not.
- If
ad-core.ymlfile is not present, then generate thead-core.ymlfile.
OUTPUT
- Modify the
ad-core.ymlfile.
a. Open the ad-core.yml file.
b. Remove the ports: field in the ad-graphql section of ad-core.yml .
c. The resulting ad-graphql section will look like this:
d. Save the file.
- Restart the
ad-graphqlcontainer.
- Check if the port is not exposed to host.
OUTPUT
- Check if there any errors in
ad-graphqlcontainer.
- Deploy the
ad-proxyaddons, run the following command and selectProxyfrom the list and press enter.
- Now you can access the Pulse UI using
https://<pulse-server-hostname>By default the port used is443.
Configuration
If you want to change the SSL port to another port, follow the steps below:
- Check if
ad-proxy.ymlfile is present or not.
- Generate the
ad-proxy.ymlfile if its not present.
OUTPUT
- Modify the
ad-core.ymlfile.
a. Open the ad-proxy.yml file.
b. Change the host port in the ports list to the desired port.
The final file will look like this if the host port is 6003 :
c. Save the file.
- Restart the
ad-proxycontainer.
- Check if there are any errors.
- Now you can access the Pulse UI using
https://<pulse-server-hostname>:6003.
Set Up LDAP for Pulse UI
- Check if the
ldap.confis present or not.
- Run the configure command to generate the default
ldap.confif not already present.
OUTPUT
- Edit the file in path
$AcceloHome/config/ldap/ldap.conf.
Configure file for 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:
Here is the command to check if user has search entry access and group access in LDAP directory:
If the file is already generated it will ask for the LDAP credentials to validate the connectivity and configurations which are mentioned in the below steps.
- Run the configure command.
- It will ask for the LDAP user credentials.
- If things went correctly, it will show the below confirmation message:
- Press ‘y' and press 'Enter’.
OUTPUT
- Push the LDAP config.
- Run the
deploy add-onscommand.
- Select the LDAP from the list shown and click Enter.
OUTPUT
- Run the restart command.
- Open Pulse Web UI and create default roles.
- Create an ops role with the necessary access permissions. Any users who log in via LDAP will automatically be assigned to this role.
For additional help, contact www.acceldata.force.com OR call our service desk +1 844 9433282
Copyright © 2026