Deploying the Connector Component on a Standalone Node
This documentation provides the steps needed to deploy as a standalone add-on.ad-sa-connector
Important
Deploy the standalone connector () component on a standalone node only at the recommendation of the Acceldata Support team. Unless recommended, do not deploy it on the production environment.ad-sa-connectors
Prerequisites
Ensure the following criteria are met:
- You are using “Pulse 3.5.0 or higher” or “Pulse 3.4.3 or higher”.
- You have not deployed
. If it’s already deployed, uninstall it usingCore Connectorsand unselectaccelo deploy add-ons.Core Connectors - You have already configured the standalone node.
Deploying ad-sa-connector as a Standalone add-on
Follow the steps listed below to successfully deploy as a standalone add-on.ad-sa-connector
- On the core node, run the following command to generate
if it doesn’t exist already.ad-core.yml
accelo admin makeconfig ad-core
Open the file in a text editor and navigate to the following section.
ad-graphql:
image: ad-graphql
container_name: ""
environment:
....................
In case of Non-Multi KDC:
Add the following environment variables under the section environment:
: Set its value to the hostname of the node where you deployAD_CONNECTOR_HOST.StandAlone Connector: Set its value toAD_CONNECTOR_PORT.19025
Save your changes. If done correctly, the following changes appear on the screen.
: Set its value to the hostname of the node where you deployAD_SPARK_PROXY_HOST.StandAlone Connector: Set its value toAD_SPARK_PROXY_PORT19025.
In case of Multi-KDC:
Add the following environment variable under the section :environment
: Set its value toIS_MULTIKDC_MULTINODEonly in case of a multi-node multi-KDC environment.true
[root@plat01:docker (ad-default)]$ diff -y --suppress-common-lines ad-core.yml.orig ad-core.yml
> - AD_CONNECTOR_HOST=plat03.acceldata.dvl
> - AD_CONNECTOR_PORT=19025
> - AD_SPARK_PROXY_HOST=plat03.acceldata.dvl
> - AD_SPARK_PROXY_PORT=19025
> - IS_MULTIKDC_MULTINODE=true
- On the core node, run the following command and provide the following string when prompted.
accelo admin encrypt
01082018@<HOSTNAMEmongodb://accel:ACCELUSEROF_CORE_NODE>:27017
Replace with the hostname of node where the core services are deployed. Note down the output as you need the encrypted string in the next step.<HOSTNAME_OF_CORE_NODE>
- On the core node, backup
Open the file in a text editor and navigate to the following section.$AcceloHome/config/acceldata_<cluster_name>.conf.
# General dependencies are expressed as accessible service url's. Spark, Yarn,
# ATS, Hive Metastore, Spark and Webhdfs urls are required.
# At this point in time, AccelData does not support compression by default.
group {
name = "odp_zoro"
displayName = "odp_zoro"
originalName = "ODP_Zoro"
distroType = "HWX"
onprem = true
active = true
priority = 1000
connections = {
mongo = [
........
Make changes to the value of the following fields using a text editor:
: Change its value to the output of the command that you ran in the previous step.uri: Change its value fromhostto the host/hosts wheread-elasticis deployed.Logsearch
Important
For the connection named , it's the host where fsanalytics is deployed.FS Elastic
: Change its value to 19013.port: Change the value of all occurrences of this field tonats.server.host.listOF<HOSTNAME, replacingCORE_NODE>:19009with the hostname of node where the core services are deployed.<HOSTNAME_OF_CORE_NODE>: Change the value of all occurrences of this field tospark.events.urlOF<HOSTNAME, replacingSTANDALONE_NODE>:<PORT>with the hostname of node where you’ll be deploying the Standalone Connectors and<HOSTNAME_OF_STANDALONE_NODE>with 19004.<PORT>
[root@plat02:config (ad-default)]$ diff -y --suppress-common-lines acceldata_odp_zoro.conf.cpy acceldata_odp_zoro.conf
uri = "ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXosC8 | uri = "ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXobon
uri = "ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXosC8 | uri = "ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXobon
host = "ad-elastic" | host = "plat03.acceldata.dvl"
port = 9200 | port = 19013
host = "ad-elastic" | host = "plat03.acceldata.dvl"
port = 9200 | port = 19013
host = "ad-elastic" | host = "plat03.acceldata.dvl"
port = 9200 | port = 19013
nats.server.host.list="ad-events:4222" | nats.server.host.list="plat02.acceldata.dvl:19009"
spark.events.url = "http://ad-sparkstats:19004/events" | spark.events.url = "http://plat03.acceldata.dvl:19004/ev
nats.server.host.list="ad-events:4222" | nats.server.host.list="plat02.acceldata.dvl:19009"
nats.server.host.list="ad-events:4222" | nats.server.host.list="plat02.acceldata.dvl:19009"
Info
Repeat the above steps for all the cluster configuration files.
- Run the following command to push the configuration.
accelo admin database push-config -a
- On the core node, navigate to
and run the following command.$AcceloHome
tar -cvf work_dir3.tar.gz $(ls -d config/krb/security work/*/hadoop)
It generates a tar file in named $AcceloHome which needs to be copied over to work_dir.tar.gz on the standalone node. One way to copy would be using $AcceloHome or an NFS export.scp
- On the standalone node, navigate to
and run the following command.$AcceloHome
tar -xvf work_dir3.tar.gz
- On the standalone node, create a copy of
and save it under/etc/hosts. Open the file in a text editor and find the entry corresponding to the node where core services are deployed. Add the aliases$AcceloHome/config/docker. If done correctly, it must look something like this.ad-db ad-events ad-streaming
<IP_OF_CORE_NODE> <HOST_NAME_OF_CORE_NODE> ad-db ad-events ad-streaming
Post that, run the following command to generate if it doesn’t exist already.ad-sa-connectors.yml
accelo admin makeconfig ad-sa-connectors
Open the file in a text editor and navigate to the following section.
ad-sa-connectors:
image: ad-connectors
container_name: ""
....................
volumes:
....................
Make the following changes.
- Replace
with/etc/hosts:/etc/hosts:rosubstituting the environment variable$AcceloHome/config/docker/hosts:/etc/hosts:rowith its value.$AcceloHome - Replace the value of
with the output of the command you ran in step 2.MONGO_URI
Add the following section under .services
ad-sparkstats:
image: ad-sparkstats
environment:
- AD_STREAMS_URL=http://ad-streaming:19005/events
- MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqyScAm+LrS8Y9EWT8A8/30
- MONGO_ENCRYPTED=true
- KAFKA_ENABLED=false
- MONGO_SECRET=Ah+MqxeIjflxE8u+/wcqWA==
- NATS_SERVER_HOST_LIST=ad-events:19009
- KRB5_CONF_LOCATION=/krb/security/krb5.conf
- JAAS_LOGIN_CONF_LOCATION=/krb/security/krb5JAASLogin.conf
- KERBEROS_ENABLED=true
- ES_USERNAME=pulse
- ES_PASSWORD=pPBrVKaoB0QsmCJZNZyYAw==
volumes:
- /etc/localtime:/etc/localtime:ro
- $AcceloHome/config/docker/hosts:/etc/hosts:ro
- ./config/users/group:/etc/group:ro
- ./config/users/passwd:/etc/passwd:ro
- ./work:/etc/acceldata:ro
- ./config/krb/security:/krb/security
opts:
memory: "30064771072"
ports:
- 19004:19004
depends_on:
- ad-streaming
Add the following port mapping to the service ad-sa-connectors.
ad-sa-connectors:
image: ad-connectors
...................
ports:
- 19025:19025
- Replace the environment variable
with its value.$AcceloHome - Replace the value of
with the output of the command you ran in step 2.MONGO_URI
Save your changes. If done correctly, the following changes appear on the screen.
- MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqyS | - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqcd
ports: [] | ports:
> - 19025:19025
- MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqyS | - MONGO_URI=ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXqcd
- Perform this step only if Multi KDC is enabled. On the Standalone Node:
- Update the ports so that
andad-sa-connectorsstart listening on different ports.ad-sparkstats
- Update the ports so that
ports:
- 19029:19025
For details about enabling Multi KDC, see Enable MultiKDC.
Info
Only update the host port, not the service port for both services.
b. Save your changes.
c. Switch to the other cluster by running the following command.
accelo set
Important
In case you have enabled TLS/SSL enforced for any of the Hadoop components in the target cluster, you need to mount the Java trust store files inside the following Pulse service containers:
- Generate the ad-core-connectors configuration file by executing the following command.
accelo admin makeconfig ad-core-connectors
- Edit the file path
and add the following lines under the<$AcceloHome>/config/docker/addons/ad-core-connectors.ymlsection of bothvolumesandad-connectorsservice blocks.ad-sparkstats
./config/security/cacerts:/usr/local/openjdk-8/lib/security/cacerts
[INLINE_CODE]./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/jssecacerts[/INLINE_CODE]
- In case, you only have the
file available and not thejssecacertfile, you can mount thecacertsfile as thejssecacertsfile inside container as shown below.cacerts
./config/security/jssecacerts:/usr/local/openjdk-8/lib/security/cacerts
- Perform this step only if Multi-KDC is enabled.
- On the core node, backup
$AcceloHome/config/accelo.yml. - Open the file in a text editor and add the following entry to the list
ad-sa-connectors.``KerberosAddons - Update
MultiKDCContainersPortMap.
- On the core node, backup
You need to specify the host and the host port corresponding to for each of the clusters that Pulse is observing. The host and host port are the hostname of the standalone node and the host port that you have specified in the previous step for each of the clusters respectively.ad-sa-connectors
Note that the host port differs for each of the clusters.
ad-connectors:
odp_ace:
hostname: ""
port: ""
odp_ace2:
hostname: ""
port: ""
odp_zoro:
hostname: ""
port: ""
On the core node, make sure that the port number for the field in the spark.events.url file is correct and match with the host ports you’ve specified in this step for acceldata_<cluster_name>.conf for each of the clusters.ad-sparkstats
You need to repeat this step for each of the of the files.acceldata_<cluster_name>.conf
Save your changes and run the following command.
accelo admin database push-config -a
- On the standalone node, run the following command and select
StandAlone Connector.
accelo deploy addons
Important
- In the case of Multi-KDC, you need to repeat steps 8 and 9 for each of the clusters. Also, ensure to use a different host port mapping for each cluster.
- When you run
oraccelo reconfig cluster, repeat steps 3 and 4.accelo reconfig cluster -a

Have a suggestion?