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:
mkdir -p /data01/backupb. To backup, copy the entire config and workdirectory:
cp -R $AcceloHome/config /data01/backup/cp -R $AcceloHome/work /data01/backup/c. Uninstall the existing Pulse setup by running the following command:
accelo 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 ...- 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:
mkdir -p /data01/images- Copy the binaries and tar files into the
/data01/imagesfolder:
cp </path/to/binaries/tar> /data01/images- Change the directory:
cd /data01/images- Extract the single tar file:
tar xvf <name_of_tar_file>.tarOUTPUT
[root@nifihost1 images]# tar xvf pulse-333-beta.tar./ad-alerts.tgz./ad-connectors.tgz./ad-dashplots.tgz./ad-database.tgz./ad-deployer.tgz./ad-director.tgz./ad-elastic.tgz./ad-events.tgz./ad-fsanalyticsv2-connector.tgz./ad-gauntlet.tgz./ad-graphql.tgz./ad-hydra.tgz./ad-impala-connector.tgz./ad-kafka-0-10-2-connector.tgz./ad-kafka-connector.tgz./ad-ldap.tgz./ad-logsearch-curator.tgz./ad-logstash.tgz./ad-notifications.tgz./ad-oozie-connector.tgz./ad-pg.tgz./ad-proxy.tgz./ad-pulsemon-ui.tgz./ad-recom.tgz./ad-sparkstats.tgz./ad-sql-analyser.tgz./ad-streaming.tgz./ad-vminsert.tgz./ad-vmselect.tgz./ad-vmstorage.tgz./accelo.linux./admon./hystaller- Load the Docker images by running the following command:
ls -1 *.tgz | xargs --no-run-if-empty -L 1 docker load -i- Ensure that all the images are loaded to the server by running the following command:
docker images | grep 3.3.3Cluster Configuration
To configure the cluster, perform the following:
- Validate all the host files.
- Create the
acceldatadirectory by running the following command:
cd /data01/mkdir -p acceldata- Place the
accelobinary in the/data01/acceldatadirectory:
cp </path/to/accelo/binary> /data01/acceldata- Rename the
accelo.linuxbinary toaccelo:
mv /data01/acceldata/accelo.linux accelochmod +x /data01/acceldata/accelo- Change the directory:
cd /data01/acceldata/accelo- Run the following
accelo initcommand:
./accelo init- Enter the appropriate answers when prompted.
- Source the
ad.shfile:
source /etc/profile.d/ad.sh- To enter the Pulse version, run the
initcommand:
accelo initOUTPUT
[root@nifihost1:~ (ad-default)]$ accelo initEnter the AccelData ImageTag: : 3.3.3✓ Done, AccelData Init Successful.Provide the correct Pulse version, in this case its 3.3.3
- To get the initial information, run the
accelo infocommand:
accelo infoOUTPUT
[root@nifihost1:~ (ad-default)]$ accelo infoWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB ___ ____________________ ____ ___ _________ / | / ____/ ____/ ____/ / / __ \/ |/_ __/ | / /| |/ / / / / __/ / / / / / / /| | / / / /| | / ___ / /___/ /___/ /___/ /___/ /_/ / ___ |/ / / ___ |/_/ |_\____/\____/_____/_____/_____/_/ |_/_/ /_/ |_|Accelo CLI Version: 3.3.3Accelo CLI Build Hash: 8ba4727f11e5b3f3902547585a37611b6ec74e7cAccelo CLI Build ID: 1700746329Accelo CLI Builder ID: ZEdjMmxrYUdGdWRGOWhZMk5sYkdSaEVLCg==Accelo CLI Git Branch Hash: TXdLaTlCVDFBdE56STNvPQo=AcceloHome: /data01/acceldataAcceloStack: ad-defaultAccelData Registry: 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldataAccelData ImageTag: 3.3.3Active Cluster Name: NotFoundAcceloConfig Mongo DB Retention days: 15AcceloConfig Mongo DB HDFS Reports Retention days: 15AccelConfig TSDB Retention days: 31dNumber of AccelData stacks found in this node: 0- To enable multi-KDC, perform the following:
a. Modify the accelo.yml file.
vi $AcceloHome/config/accelo.ymlb. Change IsMutliKDCclusterEnabled to true.
ContainerRegistry: 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldataImageTag: 3.3.3ContainerRegistryID: ""ContainerRegistryKey: ""ContainerUserID: 1000:1000ContainerLogType: json-fileContainerLogOpts: max-buffer-size: 4m max-file: "3" max-size: 10m mode: non-blockingIsMultiKDCclusterEnabled: trueKerberosAddons:- ad-connectors- ad-sparkstats- ad-kafka-connector- ad-kafka-0-10-2-connector- ad-impala-connector- ad-fsanalyticsv2-connectorconfig: enable_gauntlet: true retention: mongo_retention_days: 15 mongo_hdfs_retention_days: 15 tsdb_retention_days: 31d snap_mongo_cleanup_frequency_in_hours: "0"c. Save the file.
- To configure the cluster in Pulse, run the
config clustercommand.
accelo config cluster- Provide appropriate answers when prompted.
[root@pulsecdp01:acceldata (ad-default)]$ accelo config clusterINFO: Configuring the cluster ...INFO: Using default API Version v10 for CM APIIs the 'Database Service' up and running? [y/n]: : nWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB✔ ClouderaEnter Your Cluster's Display Name: : cdp1Enter Cloudera URL (with http/https): : https://cdpssl01.acceldata.dvl:7183✔ Enter Cloudera Username: : admin█IMPORTANT: This password will be securely encrypted and stored in this machine.Enter Cloudera User Password: : *****Enter the cluster name to use (MUST be all lowercase & unique): : cdp1ERROR: stat /data01/acceldata/.activecluster: no such file or directoryINFO: Creating Post dirs.✔ Cluster1INFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIEnter the installed Kafka version (ex: 0.10.2): : 0.11.0: 0.11.0█Enter the installed HBase service version (ex: 0.9.4): : 0.9.4Enter the installed Hive service version (ex: 2.0.0): : 2.0.0Enter the installed Hive service version (ex: 2.0.0): : 2.0.0✓ Found Kerberos Realm: ADSRE.COMEnter the Spark History HDFS path: : /user/spark/applicationHistoryOozie DB URL: : jdbc:postgresql://cdpssl01.acceldata.dvl:7432/oozie_oozie_server✔ Oozie DB URL: : jdbc:postgresql://cdpssl01.acceldata.dvl:7432/oozie_oozie_server█Enter the Oozie DB Username: : oozie_oozie_serverEnter the Oozie DB Password: : **********Enter the Oozie DB JODA Timezone (Example: Asia/Kolkata): : Asia/Kolkata✔ Enter the hive metastore Database Name : : hive█✔ Hive Metastore PostgreSQL DB Connection URL: : jdbc:postgresql://cdpssl01.acceldata.dvl:7432/hive█Enter the hive metastore DB Username : : hive✔ Enter the hive metastore DB Password : : **********█✔ Enter the hive metastore DB Password : : **********█INFO: core-site.xml file has been updatedINFO: hdfs-site.xml file has been updated---------------------------Discovered configurations----------------------------------------✓ Cluster Type: CDH✓ CDH Version: 7.1.7✓ Discovered Cluster Name: cdp1✓ Discovered Services: ✓ PULSEHYDRAAGENT ✓ SOLR ✓ SPARK_ON_YARN ✓ KAFKA ✓ LIVY ✓ HUE ✓ HIVE_ON_TEZ ✓ HBASE ✓ QUEUEMANAGER ✓ RANGER ✓ IMPALA ✓ ATLAS ✓ ZOOKEEPER ✓ OOZIE ✓ HIVE ✓ YARN ✓ HDFS✓ Yarn RM URI: https://cdpssl02.acceldata.dvl:8090,https://cdpssl03.acceldata.dvl:8090✓ MapReduce Job History URI: https://cdpssl02.acceldata.dvl:19890✗ Yarn ATS is not enabled✓ HDFS Namenode URI: swebhdfs://nameservice1✓ Hive Metastore URI: thrift://cdpssl02.acceldata.dvl:9083✗ Hive LLAP is not enabled✓ Spark History Server URIs: https://cdpssl02.acceldata.dvl:18488✓ Impala URI: http://cdpssl04.acceldata.dvl:25000,http://cdpssl05.acceldata.dvl:25000,http://cdpssl01.acceldata.dvl:25000✓ Kafka Broker URI: https://cdpssl04.acceldata.dvl:9093,https://cdpssl05.acceldata.dvl:9093,https://cdpssl03.acceldata.dvl:9093✓ Zookeeper Server URI: http://cdpssl01.acceldata.dvl:2181,http://cdpssl02.acceldata.dvl:2181,http://cdpssl03.acceldata.dvl:2181Would you like to continue with the above configuration? [y/n]: : yIs Kerberos enabled in this cluster? [y/n]: : y✓ Found Kerberos Realm: ADSRE.COMEnter your Kerberos keytab username (Must have required HDFS permissions): : hdfsINFO: min-reports is set to default value 10INFO: Purging old config files✓ acceldata.conf file generated successfully.Setting up Kerberos ConfigSetting up kerberos..Enter the principal: : hdfs/cdpssl03.acceldata.dvl@ADSRE.COMEnter full path to the Keytab file (eg: /root/hdfs.keytab): : /data01/security/kerberos_cluster1.keytabEnter the krb5Conf file path: : /data01/security/krb5_cluster1.confWARN: /data01/acceldata/config/users/passwd already being generated✓ Done, Kerberos setup completed.INFO: Creating post config filesINFO: Writing the .dist filesINFO: Clustername : cdp1INFO: Performing PreCheck of FilesIs HTTPS Enabled in the Cluster on UI Endpoint? [Y/N]: : YEnter the Java Keystore cacerts File Path: : /data01/security/cacertsEnter the Java Keystore jsseCaCerts File Path: : /data01/security/cacertsINFO: Setting the active clusterWARN: Cannot find the pulse.yaml file, getting the values from acceldata.conf fileWARN[1090] cannot find the spark on yarn thriftserver service portsWARN[1090] Atlas Server not installedWARN[1090] Hive Server Interactive not installedCreating hydra inventory✔ Is the agent deployment Parcel Based? [Y/N] : : Y█pulsecdp01.acceldata.dvl is the hostname of the Pulse Server, Is this correct? [Y/N]: : y? Select the components you would like to install: Impala, Metastore, Hdfs, HiveServer2, Zookeeper, Yarn, HbaseIs Kerberos Enabled for Impala?: yEnter the JMX Port for hive_metastore: : 8009✔ Enter the JMX Port for zookeeper_server: : 9010█Enter the Kafka Broker Port: : 9092Do you want to enable Impala Agent: [Y/N]? : YWould you like to setup LogSearch? [y/n]: : y? Select the logs for components that are installed/enabled in your target cluster: kafka_server, yarn_timelinereader, impala_catalogd, yarn_timelineserver, hue_runcpserver, hive_server, oozie_jpa, ranger_audit, yarn_resourcemanager, hdfs_audit, oozie_error, hbase_regionserver, hue_error, impala_impalad, hdfs_datanode, yarn_nodemanager, mapred_historyserver, hbase_master, kafka_state_change, hdfs_namenode, kafka_server_gc, kafka_controller, kafka_err, yarn_application, kafka_log_cleaner, hive_server_interactive, oozie_audit, zookeeper, oozie_tomcat, hue_migrate, hue_access, syslog, oozie_ops, oozie_server✓ Generated the vars.yml file successfullyINFO: /data01/acceldata/work/cdp1/fsanalytics/update_fsimage.sh - ✓ DoneINFO: /data01/acceldata/work/cdp1/fsanalytics/kinit_fsimage.sh - ✓ DoneINFO: /data01/acceldata/work/cdp1/fsanalytics/update_fsimage_csv.sh - ✓ DoneConfiguring notifications✓ Generated the notifications.yml file successfullyConfiguring notifications✓ Generated the actions notifications.yml file successfullyINFO: Please run 'accelo deploy core' to deploy APM core using this configuration.- Run the
config clusterfor the second cluster.
[root@pulsecdp01:acceldata (ad-default)]$ accelo config clusterINFO: Configuring the cluster ...INFO: Using default API Version v10 for CM APIIs the 'Database Service' up and running? [y/n]: : nWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB✔ ClouderaEnter Your Cluster's Display Name: : cdp2✔ Enter Cloudera URL (with http/https): : https://10.90.9.65:7183█The hostname for the Cloudera is : : cdp-1.iti.adsre.com✔ Enter Cloudera Username: : admin█IMPORTANT: This password will be securely encrypted and stored in this machine.Enter Cloudera User Password: : *****Enter the cluster name to use (MUST be all lowercase & unique): : cdp2Enter the cluster name to use (MUST be all lowercase & unique): : cdp2INFO: Creating Post dirs.✔ CDP_OdinINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name APIINFO: Using lower case for CDP Service name API✔ Enter the installed Kafka version (ex: 0.10.2): : 0.11.0█✔ Enter the installed HBase service version (ex: 0.9.4): : 0.9.4█Enter the installed Hive service version (ex: 2.0.0): : 2.0.0✓ Found Kerberos Realm: ADSRE.COMEnter the Spark History HDFS path: : /user/spark/applicationHistoryINFO: core-site.xml file has been updatedINFO: hdfs-site.xml file has been updated✔ Oozie DB URL: : jdbc:postgresql://cdp-1.iti.adsre.com:7432/oozie_oozie_server2█Enter the Oozie DB Username: : oozie_oozie_server2Enter the Oozie DB Password: : **********✔ Enter the hive metastore Database Name : : hive2█Hive Metastore PostgreSQL DB Connection URL: : jdbc:postgresql://cdp-1.iti.adsre.com:7432/hive2Enter the hive metastore DB Username : : hive2✔ Enter the hive metastore DB Password : : **********█---------------------------Discovered configurations----------------------------------------✓ Cluster Type: CDH✓ CDH Version: 7.1.7✓ Discovered Cluster Name: cdp2✓ Discovered Services: ✓ LIVY ✓ PULSEHYDRAAGENT ✓ RANGER ✓ ATLAS ✓ HIVE_ON_TEZ ✓ QUEUEMANAGER ✓ SPARK_ON_YARN ✓ HUE ✓ KAFKA ✓ HDFS ✓ OOZIE ✓ SOLR ✓ HBASE ✓ YARN ✓ ZOOKEEPER ✓ HIVE✓ Yarn RM URI: https://cdp-1.iti.adsre.com:8090,https://cdp-2.iti.adsre.com:8090✓ MapReduce Job History URI: https://cdp-1.iti.adsre.com:19890✗ Yarn ATS is not enabled✓ HDFS Namenode URI: swebhdfs://nameservice123✓ Hive Metastore URI: thrift://cdp-1.iti.adsre.com:9083✗ Hive LLAP is not enabled✓ Spark History Server URIs: https://cdp-1.iti.adsre.com:18488✗ Impala is not installed✓ Kafka Broker URI: https://cdp-3.iti.adsre.com:9093,https://cdp-1.iti.adsre.com:9093,https://cdp-2.iti.adsre.com:9093✓ Zookeeper Server URI: http://cdp-1.iti.adsre.com:2181Would you like to continue with the above configuration? [y/n]: : yIs Kerberos enabled in this cluster? [y/n]: : y✓ Found Kerberos Realm: ADSRE.COMEnter your Kerberos keytab username (Must have required HDFS permissions): : hdfsINFO: min-reports is set to default value 10INFO: Purging old config files✓ acceldata.conf file generated successfully.Setting up Kerberos ConfigSetting up kerberos..Enter the principal: : hdfs/cdp-1.iti.adsre.com@ADSRE.COMEnter full path to the Keytab file (eg: /root/hdfs.keytab): : /data01/security/kerberos_cdp2.keytabEnter the krb5Conf file path: : /data01/security/krb5_cdp2.confWARN: /data01/acceldata/config/users/group already being generatedWARN: /data01/acceldata/config/users/passwd already being generated✓ Done, Kerberos setup completed.INFO: Creating post config filesINFO: Writing the .dist filesINFO: Clustername : cdp2INFO: Performing PreCheck of FilesIs HTTPS Enabled in the Cluster on UI Endpoint? [Y/N]: : YEnter the Java Keystore cacerts File Path: : /data01/security/cacertsEnter the Java Keystore jsseCaCerts File Path: : /data01/security/cacertsEnter the Java Keystore jsseCaCerts File Path: : /data01/security/cacertsINFO: Setting the active clusterWARN[0541] Atlas Server not installedWARN[0541] cannot find the spark on yarn thriftserver service portsWARN[0541] Hive Server Interactive not installedCreating hydra inventory✔ pulsecdp01.acceldata.dvl is the hostname of the Pulse Server, Is this correct? [Y/N]: : y█? Select the components you would like to install: HiveServer2, Hdfs, Zookeeper, Yarn, Hbase, MetastoreEnter the JMX Port for hive_metastore: : 8009Enter the JMX Port for hive_server: : 8008Enter the JMX Port for zookeeper_server: : 9010Enter the Kafka Log Dirs: : /var/local/kafka/dataEnter the Kafka JMX Port (Ex: 9999): : 9393Would you like to install Kapxy? [y/n]: : nWould you like to enable NTP Stats? [y/n]: : yWould you like to setup LogSearch? [y/n]: : y? Select the logs for components that are installed/enabled in your target cluster: kafka_log_cleaner, oozie_tomcat, hbase_regionserver, hdfs_datanode, oozie_ops, kafka_server, hue_access, mapred_historyserver, hue_migrate, zookeeper, oozie_error, oozie_server, hive_server, hdfs_namenode, oozie_jpa, yarn_timelineserver, oozie_audit, hbase_master, yarn_resourcemanager, ranger_audit, kafka_server_gc, kafka_state_change, yarn_timelinereader, syslog, yarn_nodemanager, kafka_err, hue_error, hdfs_audit, hive_server_interactive, kafka_controller, yarn_application, hue_runcpserver✓ Generated the vars.yml file successfullyINFO: /data01/acceldata/work/cdp2/fsanalytics/kinit_fsimage.sh - ✓ DoneINFO: /data01/acceldata/work/cdp2/fsanalytics/update_fsimage_csv.sh - ✓ DoneINFO: /data01/acceldata/work/cdp2/fsanalytics/update_fsimage.sh - ✓ DoneConfiguring notifications✓ Generated the notifications.yml file successfullyConfiguring notifications✓ Generated the actions notifications.yml file successfullyINFO: Please run 'accelo deploy core' to deploy APM core using this configuration.- Perform the below mentioned steps for both the clusters.
- Edit the
acceldata.conffile for the changes for MultiNode deployment.
vi $AcceloHome/config/acceldata_<clustername>.conf- Update the
elasticsection of theconnectionscollection.
elastic = [ { name = "default" host = "<PULSE SERVER FQDN WHERE THE LOGSEARCH IS DEPLOYED>" port = <ELASTIC PORT> }, { name = "fsanalytics" host = "<PULSE SERVER FQDN WHERE THE FSELASTIC IS DEPLOYED>" port = <FSELASTIC PORT NUMBER> }, { name = "nifi" host = "ad-elastic" port = 9200 } ],- Save the file.
- Change the directory to
work/<clustername>
cd $AcceloHome/work/<clustername>- Create the
override.ymlfile if not yet created.
vi override.yml- Enter the following code and edit as required:
base: logstash_url: <LOGSEARCH HOSTNAME>:19012 yarn_app_es_urls: http://<LOGSERCH HOSTNAME>:19051- Save the file.
Copy the License
Place the license file provided by the Acceldata team in the work directory.
cp </path/to/license> /data01/acceldata/workDeploy Core
- Deploy the Pulse core components by running the following command:
accelo deploy coreOUTPUT
[root@nifihost1:acceldata (ad-default)]$ accelo deploy coreERROR: Cannot connect to DB, Because: cannot connect to mongodbWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DBHave you verified the acceldata config file at '/data01/acceldata/config/acceldata_spark341.conf' ? [y/n]: : y✓ accelo.yml file found and parsed✓ AcceloEvents - events.json file found and parsed✓ acceldata conf file found and parsed✓ .dist file found and parsed✓ hydra_hosts.yml file found and parsed✓ vars.yml file found and parsed✓ alerts notification.yml file found and parsed✓ actions notification.yml file found and parsed✓ alerts default-endpoints.yml file found and parsed✓ override.yml file found and parsed✓ gauntlet_mongo_spark341.yml file found and parsed✓ gauntlet_elastic.yml file found and parsedINFO: No existing AccelData networks found. Current stack 'ad-default' is missing.INFO: Trying to create a new network ..INFO: If you're setting up AccelData for the first time give 'y' to the below.Would you like to initiate DB with the config file '/data01/acceldata/config/acceldata'? [y/n]: : yCreating group monitors [================================================================================================>-------------------] 83.33%INFO: Pushing the hydra_hosts.yml to mongodbDeployment Completed [==============================================================================================>--------------------] 81.82% 28s✓ Done, Core services deployment completed.Now, you can access the AccelData APM Server at the configured port of this node.To deploy the AccelData addons, Run './accelo deploy addons'- Push the configurations for all the clusters.
accelo admin database push-config -aConfigure SSL for Connectors and Streaming
If you have TLS/SSL enforced for any of the Hadoop components in the target cluster, copy the cacerts and jsseCaCerts certificates to the Pulse Node and enter their path when Accelo CLI asks the below question.
- Select Y if the SSL/TLS is enabled.
Is HTTPS Enabled in the Cluster on UI Endpoint? [Y/N]:y- Enter the certificate path.
Enter the Java Keystore cacerts File Path:/path/to/certEnter the Java Keystore jsseCaCerts File Path:/path/to/jsseCaCert- 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:
accelo admin makeconfig ad-core-connectors- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-core-connectors.ymland add the following lines under thevolumessection of bothad-connectorsandad-sparkstatsservice blocks.
./config/security/cacerts:/usr/local/openjdk-8/lib/security/cacerts./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/jssecacerts- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/cacertsAD-STREAMING
Perform the following:
- Generate the ad-core configuration file:
accelo admin makeconfig ad-core- Edit the file in path
<$AcceloHome>/config/docker/ad-core.ymland add the following lines under thevolumessection ofad-streamingservice block.
./config/security/cacerts:/usr/local/openjdk-8/lib/security/cacerts./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/jssecacerts- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/cacertsAD-FSANALYTICSV2-CONNECTOR
Perform the following:
- Generate the ad-fsanalyticsv2-connector configuration file:
accelo admin makeconfig ad-fsanalyticsv2-connector- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-fsanalyticsv2-connector.ymland add the following lines under thevolumessection ofad-fsanalyticsv2-connector
./config/security/cacerts:/usr/local/openjdk-8/lib/security/cacerts./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/jssecacerts- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/cacertsAD-KAFKA-CONNECTOR
Perform the following:
- Generate the ad-core-connectors configuration file:
accelo admin makeconfig ad-kafka-connector- Edit the file in path
<$AcceloHome>/config/docker/addons/ad-kafka-connector.ymland add the following lines under thevolumessection ofad-kafka-connector
./config/security/cacerts:/usr/local/openjdk-8/lib/security/cacerts./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/jssecacerts- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/cacertsAD-KAFKA-0-10-2-CONNECTOR
Perform the following:
- Generate the ad-core-connectors configuration file:
accelo admin makeconfig ad-kafka-0-10-2-connector- 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
./config/security/cacerts:/usr/local/openjdk-8/lib/security/cacerts./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/jssecacerts- If you only have the
jssecacertfile available and not thecacertsfile, you can mount thejssecacertsfile as thecacertsfile inside the container as demonstrated below:
./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/cacertsDeploy Add-ons
accelo deploy addonsOUTPUT
[root@nifihost1:acceldata (ad-default)]$ accelo deploy addonsWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DBINFO: Active Cluster: spark341? Select the components you would like to install: Alerts (Agents MUST be configured), Core Connectors, Dashplot, Director (Agents MUST be configured), HYDRA, LogSearch, NotificationsStarting the deployment ..Completed [==============================================================================================================================] 137.50% 29s✓ Done, Addons deployment completed.[root@pulsecdp01:~ (ad-default)]$ docker ps | grep cdp1fb489fdb8c09 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-sparkstats:3.3.3-beta "/opt/docker/bin/spa…" 18 minutes ago Up 18 minutes ad-sparkstats_cdp1_default3cae513b8910 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-connectors:3.3.3-beta "/opt/docker/bin/ad-…" 18 minutes ago Up 18 minutes ad-connectors_cdp1_defaultc8f128057341 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-kafka-connector:3.3.3-beta "/opt/docker/bin/ad-…" 18 minutes ago Up 18 minutes ad-kafka-connector_cdp1_defaultaccelo setDeploy the Pulse add-ons, and select the components that are needed for CDP Cluster2.
accelo deploy addonsOUTPUT
[root@nifihost1:acceldata (ad-default)]$ accelo deploy addonsWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DBINFO: Active Cluster: spark341? Select the components you would like to install: Alerts (Agents MUST be configured), Core Connectors, Dashplot, Director (Agents MUST be configured), HYDRA, LogSearch, NotificationsStarting the deployment ..Completed [==============================================================================================================================] 137.50% 29s✓ Done, Addons deployment completed.[root@pulsecdp01:~ (ad-default)]$ docker ps | grep cdp273fafe32a650 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-kafka-connector:3.3.3-beta "/opt/docker/bin/ad-…" 6 hours ago Up 6 hours ad-kafka-connector_cdp2_defaultf089aca93f9f 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-sparkstats:3.3.3-beta "/opt/docker/bin/spa…" 6 hours ago Up 6 hours ad-sparkstats_cdp2_default83d707813431 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-connectors:3.3.3-beta "/opt/docker/bin/ad-…" 6 hours ago Up 6 hours ad-connectors_cdp2_defaultDatabase Push Configuration
To push the configuration to the database, run the following code:
accelo admin datbase push-config -aUpdating 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:
ls -al $AcceloHome/config/docker/ad-core.yml- If the above file is not present then generate it by running the following command:
accelo admin makeconfig ad-core- Edit the
ad-core.ymlfile by performing the following:
a. Open the file.
vi $AcceloHome/config/docker/ad-core.ymlb. Update the DRY_RUN_ENABLE environment variable in the ad-gauntlet section as shown below:
DRY_RUN_ENABLE=falsec. The updated file must appear as shown below:
ad-gauntlet: image: ad-gauntlet container_name: ad-gauntlet environment: - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXosC8vfVkGYGWGPNnX64ZVSp9yHgErQknPBAfYZ9cOG1A== - MONGO_ENCRYPTED=true - ELASTIC_ADDRESSES=http://ad-elastic:9200 - DRY_RUN_ENABLE=false - CRON_TAB_DURATION=*/5 * * * * volumes: - /etc/localtime:/etc/localtime:ro - /root/acceldata/config/logsearch/gauntlet_elastic.yml:/gauntlet/config/config.yml - /root/acceldata/logs/logsearch/:/gauntlet/logs/ ulimits: {} ports: [] depends_on: [] opts: {} restart: "" extra_hosts: [] network_alias: []d. Save the file.
- Restart Gauntlet service by running the following command:
accelo restart ad-gauntletConfigure 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:
ls -al $AcceloHome/config/docker/ad-core.yml- If the above file is not present then generate it by running the following command:
accelo admin makeconfig ad-core- Edit the
ad-core.ymlfile by performing the following:
a. Open the file
vi $AcceloHome/config/docker/ad-core.ymlb. Update the CRON_TAB_DURATION environment variable in the ad-gauntlet section as shown below:
CRON_TAB_DURATION=*/5 * * * *The updated file must appear as shown below:
ad-gauntlet: image: ad-gauntlet container_name: ad-gauntlet environment: - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXosC8vfVkGYGWGPNnX64ZVSp9yHgErQknPBAfYZ9cOG1A== - MONGO_ENCRYPTED=true - ELASTIC_ADDRESSES=http://ad-elastic:9200 - DRY_RUN_ENABLE=true - CRON_TAB_DURATION=*/5 * * * * volumes: - /etc/localtime:/etc/localtime:ro - /root/acceldata/config/logsearch/gauntlet_elastic.yml:/gauntlet/config/config.yml - /root/acceldata/logs/logsearch/:/gauntlet/logs/ ulimits: {} ports: [] depends_on: [] opts: {} restart: "" extra_hosts: [] network_alias: []c. Save the file.
- Restart the Gauntlet service by running the following command:
accelo restart ad-gauntletConfiguring Gauntlet for Multi-node and Multi-cluster Deployment
Perform the following:
- To generate the Gauntlet config files, run the following command:
accelo admin database push-config -s -a- Change the directory to
config/gauntlet/
cd $AcceloHome/config/gauntlet- Check if all the files are present or not for all the clusters or not:
[root@cdp5007:gauntlet (ad-default)]$ accelo admin database push-config -a -sIs the 'Database Service' up and running? [y/n]: : yINFO: Working on cluster: cl1Creating group monitors [========================================================================================================================================================================================================>----------------------------------------] 83.33%INFO: Pushing the hydra_hosts.yml to mongodbINFO: Pushing the LDAP configuration to the mongo DBDone [=====================================================================================>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 33.33% 0sPush completed successfully!INFO: Working on cluster: cl2Creating group monitors [========================================================================================================================================================================================================>----------------------------------------] 83.33%INFO: Pushing the hydra_hosts.yml to mongodbINFO: Pushing the LDAP configuration to the mongo DBDone [=====================================================================================>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 33.33% 0sPush completed successfully![root@cdp5007:gauntlet (ad-default)]$ ls -altotal 28drwxr-xr-x. 2 root root 130 Nov 24 09:58 .drwxr--r--. 14 root root 4096 Nov 24 09:56 ..-rw-r--r--. 1 root root 866 Nov 24 09:56 gauntlet_elastic_cl1.yml-rw-r--r--. 1 root root 866 Nov 24 09:56 gauntlet_elastic_cl2.yml-rw-r--r--. 1 root root 6404 Nov 24 09:58 gauntlet_mongo_cl1.yml-rw-r--r--. 1 root root 6404 Nov 24 09:58 gauntlet_mongo_cl2.yml- Modify the
gauntlet_elastic_<clustername>.ymlfile by running the file:
vi gauntlet_elastic_<clustername>.yml- Edit the elastic address in the file for multi-node setup.
INFO: Working on cluster: cl1version: 1elastic_servers: - version: v8 address: "http://<Elastic Server Hostname>:<Elastic Server Port>" basic_auth: true username: "pulse" #EncryptedPassword password: "pPBrVKaoB0QsmCJZNZyYAw==" enable_tls: false client_certificate_path: "" client_key_path: "" client_ca_cert: ""- Modify the Elastic address for both the clusters.
- Push the configuration to the database:
accelo admin database push-config -a- Restart the Gauntlet service:
accelo restart ad-gauntletUpdating 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:
accelo config retention- Answer the following prompts, if you are unsure about the number of days you wish to retain, then proceed with the default values.
✔ How many days of data would you like to retain at Mongo DB ?: 15✔ How many days of data would you like to retain at Mongo DB for HDFS reports ?: 15✔ How many days of data would you like to retain at TSDB ?: 31- 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.
✔ How often should Mongo DB clean up & compaction run, provide a comma separated string of hours (valid values are [0,23] (Ex. 8,12,15,18)?: 0,6,12,18- 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:
accelo admin database push-configConfigure 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:
cd /data01/mkdir -p acceldata- Place the
accelo.linuxbinary in the/data01/acceldatadirectory:
cp </path/to/accelo/binary> /data01/acceldata- Rename the
accelo.linuxbinary toaccelo
mv /data01/acceldata/accelo.linux accelochmod +x /data01/acceldata/accelo- Change the directory.
cd /data01/acceldata/accelo- Run the following command to run
accelo init.
./accelo init- Provide appropriate answers when prompted.
- Source the
ad.shfile
source /etc/profile.d/ad.sh- To enter the Pulse version, run the
initcommand:
./accelo initOUTPUT
[root@nifihost1:~ (ad-default)]$ accelo initEnter the AccelData ImageTag: : 3.3.3✓ Done, AccelData Init Successful.3.3.3.
- Run accelo info to get the initial information.
accelo infoOUTPUT
[root@nifihost1:~ (ad-default)]$ accelo infoWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB ___ ____________________ ____ ___ _________ / | / ____/ ____/ ____/ / / __ \/ |/_ __/ | / /| |/ / / / / __/ / / / / / / /| | / / / /| | / ___ / /___/ /___/ /___/ /___/ /_/ / ___ |/ / / ___ |/_/ |_\____/\____/_____/_____/_____/_/ |_/_/ /_/ |_|Accelo CLI Version: 3.3.3Accelo CLI Build Hash: 8ba4727f11e5b3f3902547585a37611b6ec74e7cAccelo CLI Build ID: 1700746329Accelo CLI Builder ID: ZEdjMmxrYUdGdWRGOWhZMk5sYkdSaEVLCg==Accelo CLI Git Branch Hash: TXdLaTlCVDFBdE56STNvPQo=AcceloHome: /data01/acceldataAcceloStack: ad-defaultAccelData Registry: 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldataAccelData ImageTag: 3.3.3Active Cluster Name: NotFoundAcceloConfig Mongo DB Retention days: 15AcceloConfig Mongo DB HDFS Reports Retention days: 15AccelConfig TSDB Retention days: 31dNumber of AccelData stacks found in this node: 0- Get the
Pulse Masterhostname and generate the Mongo URL by editing the below code:
mongodb://accel:<MONGO_PASSWORD>@<PULSE_MASTER_HOST>:27017- Encrypt the above string by running the following command and provide the string when prompted:
accelo admin encrypt- Edit the
ad.shfor enabling the Pulse Standalone deployment. Add the following information, to thead.sh.
vi /etc/profile.d/ad.sh- Replace the
MONGO_URIwith the encrypted string obtained from step 10.
export PULSE_SA_NODE='true'export AcceloHome='/data01/acceldata'export AcceloStack='ad-default'export PATH=${PATH}:${AcceloHome}export MONGO_URI=export MONGO_ENCRYPTED=trueexport PS1='[\u@\h:\W (ad-default)]$ '- Source the file.
source /etc/profile.d/ad.sh- Now set the cluster.
accelo set- Copy the
fsanalyticsdirectory from the Pulse Master Server present in the below location:
$AcceloHome/work/<clustername>/fsanalyticsAdd the following to the below directory in the second cluster:
$AcceloHome/work/<clustername>/fsanalytics- Copy the
/krb/securitydirectory from the Pulse Master Server present in the below location:
$AcceloHome/work/<clustername>/krb/securityAdd the following to the below directory in the second cluster:
$AcceloHome/work/<clustername>/krb/security- Generate the
ad-fsanalyticsv2-connector.yml.
accelo admin makeconfig ad-fsanalyticsv2-connectorOUTPUT
[root@pulsecdp02:acceldata (ad-default)]$ accelo admin makeconfig ad-fsanalyticsv2-connectorWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB✓ Done, Configuration file generatedIMPORTANT: Please edit/verify the file '/data01/acceldata/config/docker/addons/ad-fsanalyticsv2-connector.yml'.If the addon is already up and running, use './accelo deploy addons' to remove and recreate the addon service.- Edit the file.
vi /data01/acceldata/config/docker/addons/ad-fsanalyticsv2-connector.yml- 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
version: "2"services: ad-fsanalyticsv2-connector: image: ad-fsanalyticsv2-connector container_name: "" environment: - FSANALYTICS_TREE_VISIT_LEVEL2_PARALLELISM=32 - MONGO_SECRET=Ah+MqxeIjflxE8u+/wcqWA== - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqyScAm+LrS8Y9EWT8A8/30 - JAAS_LOGIN_CONF_LOCATION=/krb/security/krb5JAASLogin.conf - FSANALYTICS_RUN_MODE=raw - KRB5_CONFIG=/krb/security/krb5.conf - FSANALYTICS_IMAGE_PARSING_PARALLELISM=32 - AD_STREAMING=DEFAULT - KRB5_CONF_LOCATION=/krb/security/krb5.conf - JAVA_OPTS=-XX:+UseG1GC -XX:+UseStringDeduplication - ES_HOST=ad-fs-elastic - ES_PORT=9200 - FSANALYTICS_ENABLE_OFFHEAP_MAP=true - FSANALYTICS_IMAGE_PARSING_BATCHSIZE=400000 - FSANALYTICS_TREE_VISIT_LEVEL3_PARALLELISM=64 - MONGO_ENCRYPTED=true - FSANALYTICS_TREE_VISIT_LEVEL1_PARALLELISM=8 - KERBEROS_ENABLED=true volumes: - /etc/localtime:/etc/localtime:ro - /etc/hosts:/etc/hosts:ro - /data01/acceldata/data/fsanalytics:/etc/fsanalytics - /data01/acceldata/config/krb/security:/krb/security - /data01/acceldata/work:/opt/docker/work ulimits: {} ports: - 19027:19027 depends_on: [] opts: {} restart: "" extra_hosts: [] network_alias: []label: FS Analytics V2Append 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.
accelo deploy addonsOUTPUT
[root@pulsecdp02:acceldata (ad-default)]$ accelo deploy addonsWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DBINFO: Active Cluster: cdp1? Select the SA components you would like to install: FS Elastic, FS Analytics V2Enter the NameNode URI: : https://cdpss02.acceldata.dvl:8090Starting the deployment ..Deploying ad-fsanalyticsv2-connector service [=============================================================================================================>--------------------------------------------------------------------------------------------------------------] 50.00%WARN: Files/Dir not found : /data01/acceldata/data/fs-elasticCompleted [============================================================================================================================================================================================================================================================] 100.00% 1s✓ Done, Addons deployment completed.[root@pulsecdp02:~ (ad-default)]$ docker ps | grep cdp18cbd4cb3f25c 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-fsanalyticsv2-connector:3.3.3-beta "/opt/docker/bin/ad-…" 2 hours ago Up 2 hours 0.0.0.0:19027->19027/tcp, :::19027->19027/tcp ad-fsanalyticsv2-connector_cdp1_default- 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.
vi $AcceloHome/config/docker/addons/ad-fsanalyticsv2-connector.yml- Update the
portsection of the file.
version: "2"services: ad-fsanalyticsv2-connector: image: ad-fsanalyticsv2-connector container_name: "" environment: - FSANALYTICS_TREE_VISIT_LEVEL2_PARALLELISM=32 - MONGO_SECRET=Ah+MqxeIjflxE8u+/wcqWA== - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqyScAm+LrS8Y9EWT8A8/30 - JAAS_LOGIN_CONF_LOCATION=/krb/security/krb5JAASLogin.conf - FSANALYTICS_RUN_MODE=raw - KRB5_CONFIG=/krb/security/krb5.conf - FSANALYTICS_IMAGE_PARSING_PARALLELISM=32 - AD_STREAMING=DEFAULT - KRB5_CONF_LOCATION=/krb/security/krb5.conf - JAVA_OPTS=-XX:+UseG1GC -XX:+UseStringDeduplication - ES_HOST=ad-fs-elastic - ES_PORT=9200 - FSANALYTICS_ENABLE_OFFHEAP_MAP=true - FSANALYTICS_IMAGE_PARSING_BATCHSIZE=400000 - FSANALYTICS_TREE_VISIT_LEVEL3_PARALLELISM=64 - MONGO_ENCRYPTED=true - FSANALYTICS_TREE_VISIT_LEVEL1_PARALLELISM=8 - KERBEROS_ENABLED=true volumes: - /etc/localtime:/etc/localtime:ro - /etc/hosts:/etc/hosts:ro - /data01/acceldata/data/fsanalytics:/etc/fsanalytics - /data01/acceldata/config/krb/security:/krb/security - /data01/acceldata/work:/opt/docker/work ulimits: {} ports: - 19029:19027 depends_on: [] opts: {} restart: "" extra_hosts: [] network_alias: []label: FS Analytics V2- Save the file.
- Set the cluster to the second cluster.
accelo set- Run the deploy add-ons command and select FSAnalyticsV2 Connector add-on.
accelo deploy addonsOUTPUT
[root@pulsecdp02:fsanalytics (ad-default)]$ accelo deploy addonsWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DBINFO: Active Cluster: cdp2? Select the SA components you would like to install: FS Elastic, FS Analytics V2Starting the deployment ..Completed [============================================================================================================================================================================================================================================================] 100.00% 0s✓ Done, Addons deployment completed.15b78f10be66 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-fsanalyticsv2-connector:3.3.3-beta "/opt/docker/bin/ad-…" 2 hours ago Up 2 hours 0.0.0.0:19029->19027/tcp, :::19029->19027/tcp ad-fsanalyticsv2-connector_cdp2_default- Check if the two connectors are running or not.
docker psOUTPUT
[root@pulsecdp02:fsanalytics (ad-default)]$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES15b78f10be66 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-fsanalyticsv2-connector:3.3.3-beta "/opt/docker/bin/ad-…" 2 seconds ago Up 1 second 0.0.0.0:19029->19027/tcp, :::19029->19027/tcp ad-fsanalyticsv2-connector_cdp2_default8cbd4cb3f25c 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-fsanalyticsv2-connector:3.3.3-beta "/opt/docker/bin/ad-…" 4 minutes ago Up 4 minutes 0.0.0.0:19027->19027/tcp, :::19027->19027/tcp ad-fsanalyticsv2-connector_cdp1_defaultb141fd86e4b3 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-elastic:3.3.3-beta "/bin/tini -- /usr/l…" 4 minutes ago Up 4 minutes 0.0.0.0:19038->9200/tcp, :::19038->9200/tcp, 0.0.0.0:19039->9300/tcp, :::19039->9300/tcp ad-fs-elastic_default- Check if both the containers are bound to
19027and19029ports respectively.
docker ps | grep -i ad-fsanalyticsv2-connector- For running
fsaload, do set the following:
accelo admin fsa load- Set the cluster to the second cluster.
accelo set- Load the second cluster using the following
fsacommand:
accelo admin fsa loadEnabling (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.
ls -al $AcceloHome/config/docker/ad-core.yml- If the
ad-core.ymlfile is not present, then generate thead-core.ymlfile.
accelo admin makeconfig ad-coreOUTPUT
[root@hostname:addons (ad-default)]$ accelo admin makeconfig ad-coreWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB✓ Done, Configuration file generatedIMPORTANT: Please edit/verify the file '/data01/acceldata/config/docker/ad-core.yml'.If the stack is already up and running, use './accelo admin recreate' to recreate the whole environment with the new configuration.- Modify the
ad-core.ymlfile by performing the following:
a. Open the ad-core.yml file
vi $AcceloHome/config/docker/ad-core.ymlb. Remove the ports: field in the ad-graphql section of ad-core.yml
ports: - 4000:4000c. The resulted ad-graphql section must appear as shown below:
ad-graphql: image: ad-graphql container_name: "" environment: - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXosC8vfVkGYGWGPNnX64ZVSp9yHgErQknPBAfYZ9cOG1A== - MONGO_ENCRYPTED=true - MONGO_SECRET=Ah+MqxeIjflxE8u+/wcqWA== - UI_PORT=4000 - LDAP_HOST=ad-ldap - LDAP_PORT=19020 - SSL_ENFORCED=false - SSL_ENABLED=false - SSL_KEYDIR=/etc/acceldata/ssl/ - SSL_KEYFILE=ssl.key - SSL_CERTDIR=/etc/acceldata/ssl/ - SSL_CERTFILE=ssl.crt - SSL_PASSPHRASE="" - 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 - /etc/hosts:/etc/hosts:ro - /data01/acceldata/work/license:/etc/acceldata/license:ro ulimits: {} depends_on: - ad-db opts: {} restart: "" extra_hosts: [] network_alias: []d. Save the file.
- Restart the
ad-graphqlcontainer:
accelo restart ad-graphql- Ensure that the port is not exposed to the host.
docker psOUTPUT
ea4eb6fd540f 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-graphql:3.2.1 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 4000/tcp ad-graphql_default- Check if there any errors in the
ad-graphqlcontainer.
docker logs -f ad-graphql_default- To deploy the ad-proxy add-ons, run the following command and then select Proxy from the list and press enter.
accelo deploy addonsOUTPUT
[x] Notifications [x] Oozie Connector> [x] Proxy [ ] QUERY ROUTER DB [ ] SHARD SERVER DB [ ] StandAlone Connector- Check if any errors are there in the
ad-proxycontainer.
docker logs -f ad-proxy_default- 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
ls -altrh $AcceloHome/config/docker/addons/ad-proxy.yml- Generate the
ad-proxy.ymlfile if its not present.
accelo admin makeconfig ad-proxyOUTPUT
[root@hostname:addons (ad-default)]$ accelo admin makeconfig ad-proxyWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB✓ Done, Configuration file generatedIMPORTANT: Please edit/verify the file '/data01/acceldata/config/docker/addons/ad-proxy.yml'.If the addon is already up and running, use './accelo deploy addons' to remove and recreate the addon service.- To modify the
ad-proxy.ymlfile, perform the following:
a. Open the ad-proxy.yml file
vi $AcceloHome/config/docker/addons/ad-proxy.ymlb. Change the host port in the ports list to the desired port.
ports: - <DESIRED_HOST_PORT>:443The final file must appear as the following, if the host port is 6003:
version: "2"services: ad-proxy: image: ad-proxy container_name: "" environment: [] volumes: - /etc/localtime:/etc/localtime:ro - /data01/acceldata/config/proxy/traefik.toml:/etc/traefik/traefik.toml - /data01/acceldata/config/proxy/config.toml:/etc/traefik/conf/config.toml - /data01/acceldata/config/proxy/certs:/etc/acceldata ulimits: {} ports: - 6003:443 depends_on: [] opts: {} restart: "" extra_hosts: [] network_alias: []label: Proxyc. Save the file.
- Restart the
ad-proxycontainer
accelo restart ad-proxy- Ensure that there aren’t any errors:
docker logs -f ad-proxy_default- 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.
ls -al $AcceloHome/config/ldap/ldap.conf- Run the configure command to generate the default
ldap.confif not present already:
accelo configure ldap- Expected output must appear as shown below:
There is no ldap config file availableGenerating a new ldap config filePlease edit '$AcceloHome/config/ldap/ldap.conf' and rerun this command- Edit the file in path
$AcceloHome/config/ldap/ldap.conf.
vi $AcceloHome/config/ldap/ldap.confConfigure 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 :
<encrypted-password-string>for entering in database.encryptedPassword =
true, set this to true to enable the use of encrypted password.baseDN 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:
ldapsearch -x -h <hostname> -p 389 -D "uid=admins,cn=users,dc=acceldata,dc=io" -W -b "cn=accounts,dc=acceldata,dc=io" "(&(objectClass=person)(uid=admins))"- 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:
accelo configure ldap- You are prompted to provide the LDAP user credentials:
Checking LDAP connectionEnter LDAP username: gsEnter LDAP password: *******- If the previous step was successful, then the following message is displayed:
performing ldap search ou=users,dc=acceldata,dc=io sub (&(objectClass=inetOrgPerson)(uid=gs))username "gs" mapped to entry cn=gs,ou=users,dc=acceldata,dc=io✗ Do you want to use this configuration: y- Press 'y' and click the Enter button.
- Expected output must appear as shown below:
Ok, Updating login properties.✓ Done, You can now login using LDAP.- Push the ldap config by running the below code:
accelo admin database push-config -a- Run the deploy add-on command.
accelo deploy addons- Select the LDAP from the list shown and click the Enter button:
[ ] Job Runner [ ] Kafka 0.10.2 Connector [ ] Kafka Connector> [x] LDAP [ ] Log Reduce [ ] LogSearch [ ] Memsql ConnectorExpected output must appear as below:
Starting the deployment ..Completed [==================================================================================================] 100.00% 0s✓ Done, Addons deployment completed.- Run the restart command.
accelo restart ad-graphql- 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:
accelo set- Configure the alerts notifications by running the following command:
accelo config alerts notificationsOUTPUT
[root@nifihost1:acceldata (ad-default)]$ accelo config alerts notificationsEnter the JODA Timezone value (Example: Asia/Jakarta): : Asia/Kolkata? Select the metric groups you would like to enable: druid, nifi, ntpd, anomaly, chrony, customApp? Select the notifications you would like to enable: emailINFO: Configuring Email Notifications:Enter Email DefaultToEmailIds (comma separated list): :Enter Email DefaultSnoozeIntervalInSecs: : 0Enter Email MaxEmailThreshold: : 1✓ Done, Alerts Notifications Configuration file generated✓ Done, Alerts Notifications pushed to Pulse DB- Set the cluster2 as the active cluster.
accelo set- Configure alerts for the second cluster as shown below:
[root@nifihost1:acceldata (ad-default)]$ accelo config alerts notificationsEnter the JODA Timezone value (Example: Asia/Jakarta): : Asia/Kolkata? Select the metric groups you would like to enable: druid, nifi, ntpd, anomaly, chrony, customApp? Select the notifications you would like to enable: emailINFO: Configuring Email Notifications:Enter Email DefaultToEmailIds (comma separated list): :Enter Email DefaultSnoozeIntervalInSecs: : 0Enter Email MaxEmailThreshold: : 1✓ Done, Alerts Notifications Configuration file generated✓ Done, Alerts Notifications pushed to Pulse DB- Set the cluster3 as the active cluster by running the following code:
accelo set- Configure the alerts for the third cluster as shown below:
[root@nifihost1:acceldata (ad-default)]$ accelo config alerts notificationsEnter the JODA Timezone value (Example: Asia/Jakarta): : Asia/Kolkata? Select the metric groups you would like to enable: druid, nifi, ntpd, anomaly, chrony, customApp? Select the notifications you would like to enable: emailINFO: Configuring Email Notifications:✔ Enter Email DefaultSnoozeIntervalInSecs: : 0█mEnter Email MaxEmailThreshold: : 11█✔ Enter Email MaxEmailThreshold: : 1█✓ Done, Alerts Notifications Configuration file generated✓ Done, Alerts Notifications pushed to Pulse DB- Restart the alerts notifications.
accelo restart ad-alertsOUTPUT
[root@nifihost1:spark341 (ad-default)]$ accelo restart ad-alertsWARN: Gauntlet is running in dry run mode. Disable this to delete indices from elastic and purge data from mongo DB✗ You're about to restart AccelData services. This will restart all or any specified the service. However, any persistent data will be left untouched.✔ You're about to restart AccelData services. This will restart all or any specified the service. However, any persistent data will be left untouched.✔ You're about to restart AccelData services. This will restart all or any specified the service. However, any persistent data will be left untouched.You're about to restart AccelData services. This will restart all or any specified the service. However, any persistent data will be left untouched. Please confirm your action [y/n]: : yCompleted [===============================================================================================================================] 100.00% 1sRestart ad-alerts completed ✓