Acceldata
Pulse

Configuring RMI JMX with Basic Authentication

To collect Java Management Extensions (JMX) data through a Remote Method Invocation (RMI) port that's secured with Basic Authentication, follow these steps:

  1. Create the Override Configuration File (if it doesn't exist): Navigate to your cluster's directory and create an override.yml file if one isn't already present:
touch $AcceloHome/work/<clusterName>/override.yml
  1. Configure the override.yml File:
    1. Open the override.yml file using a text editor:
vi $AcceloHome/work/<clusterName>/override.yml
b. Insert the following configurations for the respective services, if they're not already included:
  • For Hive Metastore:
jmx:
hive_metastore_auth: "true"
hive_metastore_username: "<HIVE METASTORE USERNAME>"
hive_metastore_password: "<HIVE METASTORE PASSWORD>"
hive_metastore_port: "<HIVE METASTORE JMX PORT>"
  • For Hive Server:
jmx:
hive_server_auth: "true"
hive_server_username: "<HIVE SERVER USERNAME>"
hive_server_password: "<HIVE SERVER PASSWORD>"
hive_server_port: "<HIVE SERVER JMX PORT>"
  • For Kafka:
jmx:
kafka_broker_auth: "true"
kafka_broker_username: "<KAFKA BROKER USERNAME>""
kafka_broker_password: "<KAFKA BROKER PASSWORD>""
kafka_broker_port: "<KAFKA BROKER JMX PORT>"
  • For Zeppelin:
jmx:
zeppelin_master_auth: "true"
zeppelin_master_username: "<ZEPPELIN MASTER USERNAME>""
zeppelin_master_password: "<ZEPPELIN MASTER PASSWORD>"
zeppelin_master_port: "<ZEPPELIN MASTER JMX PORT>"
  • For Zookeeper:
jmx:
zookeeper_server_auth: "true"
zookeeper_server_username: "<ZOOKEEPER SERVER USERNAME>""
zookeeper_server_password: "<ZOOKEEPER SERVER PASSWORD>""
zookeeper_server_port: "<ZOOKEEPER SERVER PORT>"
  • For Kafka Mirror Maker:
jmx:
kafka_mirror_maker_port: "<KAFKA MIRROR MAKER PORT>"
kafka_mirror_maker_auth: "true"
kafka_mirror_maker_username: "<KAFKA MIRROR MAKER USERNAME>"
kafka_mirror_maker_password: "<KAFKA MIRROR MAKER PASSWORD>"
c. Save your changes to the override.yml file.
d. Apply the new configuration by running the following command:
accelo reconfig cluster

Configuring SSL for JMX RMI Port

To gather JMX data through an Secure Sockets Layer (SSL)-enabled RMI port, ensure the following procedure is adhered to, keeping in mind that all SSL certificates (truststores) must be identical across services with exposed JMX RMI ports.

  1. Create the Override Configuration File: If the override.yml file doesn't exist within your cluster's workspace, create it:
touch $AcceloHome/work/<clusterName>/override.yml
  1. Configure the override.yml File:

a. Open the override.yml file for editing:

vi $AcceloHome/work/<clusterName>/override.yml
b. Add the necessary SSL configuration for each specific service if not already present. Begin with the common configuration applicable to all services:
  • Common Configuration for All Services:
jmx:
pulsejmx_use_ssl: true
pulsejmx_ssl_truststore: </PATH/TO/SERVICE/TRUSTORE/FILE>
pulsejmx_ssl_truststore_password: <SERVICE TRUSTSTORE PASSWORD>
  • For Hive Metastore:
jmx:
hive_metastore_ssl: "true"
  • For Hive Server:
jmx:
hive_server_ssl: "true"
  • For Zeppelin:
jmx:
zeppelin_master_ssl: "true"
  • For Zookeeper:
jmx:
zookeeper_server_ssl: "true"
  • For Kafka Mirror Maker:
jmx:
kafka_mirror_master_ssl: "true"
c. Save the changes to the override.yml file.
d. Apply the new SSL configurations by running:
accelo reconfig cluster