Single Node Standalone Cluster Guide (Kafka/Druid/Nifi)

KAFKA

Configure the Pulse Core Component for Standalone Kafka Cluster

Pulse supports only Kafka versions 1.0.0 and higher.

  1. Run the following command to get started:
Bash
Copy
  1. The Acceldata CLI asks you for information about your environment. The following table lists the questions asked by Acceldata CLI and a guide to help you answer the questions.
Questions asked by CLIGuidelines for answering the questions
Is this current node an 'Edge Node' of the cluster? [y/n]:Type y if the node on which you are installing is a Edge Node. Else type n.
Which distribution do you use?Select Standalone
Stand-alone configuration selected:Displays the configuration selected.
  1. The CLI asks you for few more information to generate the configuration file.
Questions asked by CLIGuidelines for answering the questions
Enter Your Cluster’s Name:Enter the name of the cluster.
Enter Your Cluster’s Display Name:Enter the name you want for the cluster to display

Select the components you would like to install

a) MEMSQL

b) KAFKA

Select the components that you want to install. You can use the arrows to move, space to select, and type in to filter
Is your Kafka version greater than '0.11.0'? [y/n]Type y if the Kafka version is greater than V0.11.0.
Enter one of the Kafka bootstrap server's URIEnter the Kafka boot server URL. Example: host1.kf.com:6667
What security do you use? a. None b. Plan/SSL c. KerberosSelect your security type.
Do you use TLS ? a. No b. YesSelect Yes if you use TLS or else select NO.
Detected Kafka brokers:Based on your responses CLI would detect the Kafka brokers.
Is the above the information correct? [y/n]:Type y to confirm if the detected Kafka brokers are correct.
Enter the Zookeeper Server URLs (comma separated with http/https & port):Enter the Zookeeper server URL and use comma separate http, https, and the port.
Enter Kafka's Zookeeper Chroot Name (enter '/' for root):Enter the Kafka Zookeeper roots
Would you like to continue with the above configuration? [y/n]:Type y if you want to continue with the configuration or else type n.
Would you like to enable LDAP? [y/n]:Type y if you want to enable LDAP or else type n.
Is Kerberos enabled in this cluster? [y/n]:Enter your Kerberos Keytab username (Must have required HDFS permissions)
Enter the cluster name to use (MUST be all lowercase & unique):Enter the cluster name to be used. Ensure that the name should be in all lowercase and unique.

You will see the following message.

Bash
Copy
  1. You may be asked to answer the following questions if Kerberos is enabled.
Questions asked by CLIGuidelines for answering the questions
Would you like to continue configuring Kerberos? [y/n]:Type y if you want to continue configuring the Kerberos
Authentication realmAdd the authentication realm. Example: AZ.PULSE.COM
KDC addressAdd the KDC address. Example: host1.kdc.com:88
Kerberos principalAdd the Kerberos principal. Example: admin/admin@AZ.PULSE.COM
KDC admin server addressAdd the KDC administration server address. Example: host1.kdcadmin.com:749

Configure Kafka when Security Is Disabled

If security is not enabled in your standalone Kafka or Kafka 3 cluster, update the acceldata.conf and ad-kafka-connector.yml configuration files as described below.

  1. Update the acceldata.conf file.

Update consumerSecurityProtocol and securityProtocol:

  • From "SASL_PLAINTEXT"
  • To "PLAINTEXT".
Bash
Copy
  1. Create the ad-kafka-connector.yml file (if not present).

Run the following command to generate the configuration file:

Bash
Copy
  1. Update the ad-kafka-connector.yml file.

In the $AcceloHome/config/docker/addons/ad-kafka-connector.yml file, set KERBEROS_ENABLED to false.

Bash
Copy

Checking the Configuration

Open the files located in the address /data01/acceldata/config/acceldata<CLUSTER_NAME>.conf_ to verify if all the configurations are correct.

DRUID (HDP or Standalone Cluster)

  1. SSH to all druid hosts and create a directory druid-accel-extensions under /usr/hdp/<cluster_version>/druid/extensions
  2. Make following changes in druid advanced configs in Ambari UI
  • Add druid-accel-extensions in config druid.extensions.loadList=["druid-accel-extensions"...
  • Update or add druid.emitter=acceldata / example for any custom composing emitters druid.emitter.composing.emitters=["ambari-metrics","kafka","acceldata"]
  • druid.monitoring.emissionPeriod=PT15S
  • druid.emitter.acceldata.hostname=<pulse_host>
  • druid.emitter.acceldata.port=19009
  • druid.emitter.acceldata.databaseName=<cluster_name>
  • druid.emitter.acceldata.adStreamingUrl=http://{{pulse_host}}:19005
  • druid.emitter.acceldata.dbUser=<db-user>
  • druid.emitter.acceldata.dbPassword=<password>
  • druid.emitter.acceldata.group=<cluster_name>
  • druid.emitter.acceldata.monitor=druid
  • druid.emitter.acceldata.maxQueueSize=500
  1. Add the monitors that you want to monitor in the Druid Monitors. Ensure to add service-specific monitors in service specific-configs as mentioned in the following configurations. Prepare a separate config groups in Ambari for common(default), broker, and historical.

Common Configs:

druid.monitoring.monitors=["io.druid.server.metrics.EventReceiverFirehoseMonitor","io.druid.java.util.metrics.JvmThreadsMonitor","io.druid.java.util.metrics.JvmCpuMonitor","io.druid.client.cache.CacheMonitor","io.druid.java.util.metrics.SysMonitor","io.druid.java.util.metrics.JvmMonitor"]

Broker Configs:

druid.monitoring.monitors=["io.druid.client.cache.CacheMonitor","io.druid.java.util.metrics.SysMonitor","io.druid.java.util.metrics.JvmMonitor","io.druid.java.util.metrics.JvmCpuMonitor","io.druid.java.util.metrics.JvmThreadsMonitor","io.druid.server.metrics.QueryCountStatsMonitor"]

Historical Configs:

druid.monitoring.monitors=["io.druid.client.cache.CacheMonitor", "io.druid.java.util.metrics.SysMonitor", "io.druid.java.util.metrics.JvmMonitor", "io.druid.java.util.metrics.JvmCpuMonitor", "io.druid.java.util.metrics.JvmThreadsMonitor","io.druid.server.metrics.HistoricalMetricsMonitor"]

  1. Restart the affected components after the configuration changes.
  2. Check on the Influx DB for new measurements getting added and also validate the service logs on the Druid for any errors after the restart activity.

NiFi

Configuring the Apache NiFi

Follow the steps to setup the Apache NiFi in Pulse:

  1. Obtain the ad-nifi-1.0.nar download link from Acceldata team using the provided credentials
  2. Add the NiFi NAR files to all the NiFi daemons in the location Nifi library classpath. example : /usr/hdf/<hdf_version>/nifi/lib

Check for NiFi library location where AD NAR files needs to be placed.

  1. Restart the NiFi Services.
  2. Login to NiFi UI, navigate to the AccelDataReportingTask in the controller settings.
  1. Set the properties into the fields.
FieldDescription
Monitor Group NameEnter the name of cluster name as defined during Pulse installation
AccelData Influx Metric Collector URLAdd the VictoriaMetrics insert URL of the AccelData Nifi Metric Collector
Elasticsearch Concurrent ThreadsSet the number. The number of threads to push the data to Elasticsearch
Elasticsearch Batch SizeSet the Elasticsearch Batch size per Thread
Max Provenance EventsSet the number to send a trigger when the maximum events occurs
Influx Batch SizeSet the number of Influx Batch size
Influx Batch Flush DurationSet the duration of the influx batch flush in milliseconds.

Checking the Configuration

Check to see if the configuration is working as expected by following the steps:

  1. Check if the VictoriaMetrics is updated with the prefix <groupname>_nifi.
  2. The Elastic has the index with the name as Group Name + '-nifi-'.

Pulse Installation

Prerequisite

Create a Nifihosts file. The file's content will be as follows:

  1. Each line of the file will have a Nifi host and port.

Example:

Bash
Copy
  1. If the port is not given, the default port is used. For example, 9090 for alerts endpoints usage.

Configure the Pulse Core Component

  1. Run accelo config cluster
Bash
Copy
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard