2021-03-05 00:12:12 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title: "Configuring Kafka"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								hide_title: true
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Configuring Kafka in DataHub
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DataHub requires Kafka to operate. Kafka is used as a durable log that can be used to store inbound
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								requests to update the Metadata Graph (Metadata Change Proposal), or as a change log detailing the updates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								that have been made to the Metadata Graph (Metadata Change Log). 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Environment Variables
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The following environment variables can be used to customize DataHub's connection to Kafka for the following DataHub components,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								each of which requires a connection to Kafka:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `metadata-service`  (datahub-gms container) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Advanced - if standalone consumers are deployed) `mce-consumer-job`  (datahub-mce-consumer container) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Advanced - if standalone consumers are deployed) `mae-consumer-job`  (datahub-mae-consumer container) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Advanced - if product analytics are enabled) datahub-frontend 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Connection Configuration
  
						 
					
						
							
								
									
										
										
										
											2020-07-27 05:22:51 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								With the exception of `KAFKA_BOOTSTRAP_SERVER`  and `KAFKA_SCHEMAREGISTRY_URL` , Kafka is configured via [spring-boot ](https://spring.io/projects/spring-boot ), specifically with [KafkaProperties ](https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/kafka/KafkaProperties.html ). See [Integration Properties ](https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#integration-properties ) prefixed with `spring.kafka` . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Below is an example of how SASL/GSSAPI properties can be configured via environment variables:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-27 05:22:51 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export KAFKA_BOOTSTRAP_SERVER=broker:29092
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export KAFKA_SCHEMAREGISTRY_URL=http://schema-registry:8081
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export SPRING_KAFKA_PROPERTIES_SASL_KERBEROS_SERVICE_NAME=kafka
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export SPRING_KAFKA_PROPERTIES_SECURITY_PROTOCOL=SASL_PLAINTEXT
							 
						 
					
						
							
								
									
										
										
										
											2020-07-31 16:40:21 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export SPRING_KAFKA_PROPERTIES_SASL_JAAS_CONFIG=com.sun.security.auth.module.Krb5LoginModule required principal='principal@REALM ' useKeyTab=true storeKey=true keyTab='/keytab';
							 
						 
					
						
							
								
									
										
										
										
											2020-07-27 05:22:51 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#### Example: Connecting using AWS IAM (MSK)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-12 23:49:34 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Here is another example of how SASL_SSL can be configured for AWS_MSK_IAM when connecting to MSK using IAM via environment variables
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SPRING_KAFKA_PROPERTIES_SECURITY_PROTOCOL=SASL_SSL
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SPRING_KAFKA_PROPERTIES_SSL_TRUSTSTORE_LOCATION=/tmp/kafka.client.truststore.jks
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SPRING_KAFKA_PROPERTIES_SASL_MECHANISM=AWS_MSK_IAM
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SPRING_KAFKA_PROPERTIES_SASL_JAAS_CONFIG=software.amazon.msk.auth.iam.IAMLoginModule required;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SPRING_KAFKA_PROPERTIES_SASL_CLIENT_CALLBACK_HANDLER_CLASS=software.amazon.msk.auth.iam.IAMClientCallbackHandler
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								For more information about configuring these variables, check out Spring's [Externalized Configuration ](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config ) to see how this works.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Also see [Kafka Connect Security ](https://docs.confluent.io/current/connect/security.html ) for more ways to connect.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Topic Configuration
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								By default, DataHub relies on the a set of Kafka topics to operate. By default, they have the following names:
							 
						 
					
						
							
								
									
										
										
										
											2020-07-27 05:22:51 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  **MetadataChangeProposal_v1** 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  **FailedMetadataChangeProposal_v1** 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  **MetadataChangeLog_Versioned_v1** 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  **MetadataChangeLog_Timeseries_v1** 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  **DataHubUsageEvent_v1**: User behavior tracking event for UI 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								6.  (Deprecated) **MetadataChangeEvent_v4** : Metadata change proposal messages 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7.  (Deprecated) **MetadataAuditEvent_v4** : Metadata change log messages 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								8.  (Deprecated) **FailedMetadataChangeEvent_v4** : Failed to process #1  event 
						 
					
						
							
								
									
										
										
										
											2020-07-27 05:22:51 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								These topics are discussed at more length in [Metadata Events ](../what/mxe.md ).
							 
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								We've included environment variables to customize the name each of these topics, for cases where an organization has naming rules for your topics.
							 
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Metadata Service (datahub-gms)
  
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The following are environment variables you can use to configure topic names used in the Metadata Service container:
							 
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_PROPOSAL_TOPIC_NAME` : The name of the topic for Metadata Change Proposals emitted by the ingestion framework. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `FAILED_METADATA_CHANGE_PROPOSAL_TOPIC_NAME` : The name of the topic for Metadata Change Proposals emitted when MCPs fail processing. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_LOG_VERSIONED_TOPIC_NAME` : The name of the topic for Metadata Change Logs that are produced for Versioned Aspects. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_LOG_TIMESERIES_TOPIC_NAME` : The name of the topic for Metadata Change Logs that are produced for Timeseries Aspects. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_LOG_TIMESERIES_TOPIC_NAME` : The name of the topic for Platform Events (high-level semantic events). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `DATAHUB_USAGE_EVENT_NAME` : The name of the topic for product analytics events.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Deprecated) `METADATA_CHANGE_EVENT_NAME` : The name of the metadata change event topic. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Deprecated) `METADATA_AUDIT_EVENT_NAME` : The name of the metadata audit event topic. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Deprecated) `FAILED_METADATA_CHANGE_EVENT_NAME` : The name of the failed metadata change event topic. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### MCE Consumer (datahub-mce-consumer)
  
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 15:15:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_PROPOSAL_TOPIC_NAME` : The name of the topic for Metadata Change Proposals emitted by the ingestion framework. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `FAILED_METADATA_CHANGE_PROPOSAL_TOPIC_NAME` : The name of the topic for Metadata Change Proposals emitted when MCPs fail processing. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Deprecated) `METADATA_CHANGE_EVENT_NAME` : The name of the deprecated topic that an embedded MCE consumer will consume from. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Deprecated) `FAILED_METADATA_CHANGE_EVENT_NAME` : The name of the deprecated topic that failed MCEs will be written to. 
						 
					
						
							
								
									
										
										
										
											2020-11-14 10:38:48 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### MAE Consumer (datahub-mae-consumer) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 15:15:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_LOG_VERSIONED_TOPIC_NAME` : The name of the topic for Metadata Change Logs that are produced for Versioned Aspects. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_LOG_TIMESERIES_TOPIC_NAME` : The name of the topic for Metadata Change Logs that are produced for Timeseries Aspects. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `METADATA_CHANGE_LOG_TIMESERIES_TOPIC_NAME` : The name of the topic for Platform Events (high-level semantic events). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `DATAHUB_USAGE_EVENT_NAME` : The name of the topic for product analytics events. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  (Deprecated) `METADATA_AUDIT_EVENT_NAME` : The name of the deprecated metadata audit event topic. 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### DataHub Frontend (datahub-frontend-react)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `DATAHUB_TRACKING_TOPIC` : The name of the topic used for storing DataHub usage events. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								It should contain the same value as `DATAHUB_USAGE_EVENT_NAME`  in the Metadata Service container. 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-14 10:38:48 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Please ensure that these environment variables are set consistently throughout your ecosystem. DataHub has a few different applications running which communicate with Kafka (see above).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-28 08:54:36 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Configuring Consumer Group Id
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Kafka Consumers in Spring are configured using Kafka listeners. By default, consumer group id is same as listener id.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								We've included an environment variable to customize the consumer group id, if your company or organization has specific naming rules.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### datahub-mce-consumer and datahub-mae-consumer
  
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-28 08:54:36 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `KAFKA_CONSUMER_GROUP_ID` : The name of the kafka consumer's group id. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Applying Configurations
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Docker
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Simply add the above environment variables to the required `docker.env`  files for the containers. These can 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								be found inside the `docker`  folder of the repository.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Helm 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								On Helm, you'll need to configure these environment variables using the `extraEnvs`  sections of the specific container's
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								configurations inside your `values.yaml`  file. 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-14 10:38:48 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								datahub-gms: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    extraEnvs:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 15:15:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      -  name: METADATA_CHANGE_PROPOSAL_TOPIC_NAME
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        value: "CustomMetadataChangeProposal_v1"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  name: METADATA_CHANGE_LOG_VERSIONED_TOPIC_NAME
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        value: "CustomMetadataChangeLogVersioned_v1"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  name: FAILED_METADATA_CHANGE_PROPOSAL_TOPIC_NAME
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        value: "CustomFailedMetadataChangeProposal_v1"
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      -  name: KAFKA_CONSUMER_GROUP_ID
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        value: "my-apps-mae-consumer"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ....
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								datahub-frontend:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    extraEnvs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        -  name: DATAHUB_TRACKING_TOPIC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          value: "MyCustomTrackingEvent"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# If standalone consumers are enabled
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								datahub-mae-consumer; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    extraEnvs:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 15:15:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        -  name: METADATA_CHANGE_LOG_VERSIONED_TOPIC_NAME
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          value: "CustomMetadataChangeLogVersioned_v1"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ....
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        -  name: METADATA_AUDIT_EVENT_NAME
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          value: "MetadataAuditEvent"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								datahub-mce-consumer; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    extraEnvs:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 15:15:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        -  name: METADATA_CHANGE_PROPOSAL_TOPIC_NAME
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          value: "CustomMetadataChangeLogVersioned_v1"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ....
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        -  name: METADATA_CHANGE_EVENT_NAME
							 
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          value: "MetadataChangeEvent"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ....
							 
						 
					
						
							
								
									
										
										
										
											2020-11-14 10:38:48 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-06 03:01:12 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Other Components that use Kafka can be configured using environment variables:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  kafka-setup 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  schema-registry 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								##  SASL/GSSAPI properties for kafka-setup and datahub-frontend via environment variables
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								KAFKA_BOOTSTRAP_SERVER=broker:29092
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								KAFKA_SCHEMAREGISTRY_URL=http://schema-registry:8081
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								KAFKA_PROPERTIES_SASL_KERBEROS_SERVICE_NAME=kafka
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								KAFKA_PROPERTIES_SECURITY_PROTOCOL=SASL_PLAINTEXT
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								KAFKA_PROPERTIES_SASL_JAAS_CONFIG=com.sun.security.auth.module.Krb5LoginModule required principal='principal@REALM ' useKeyTab=true storeKey=true keyTab='/keytab';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## SASL/GSSAPI properties for schema-registry via environment variables
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS=broker:29092
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCHEMA_REGISTRY_KAFKASTORE_SASL_KERBEROS_SERVICE_NAME=kafka
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL=SASL_PLAINTEXT
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SCHEMA_REGISTRY_KAFKASTORE_SASL_JAAS_CONFIG=com.sun.security.auth.module.Krb5LoginModule required principal='principal@REALM ' useKeyTab=true storeKey=true keyTab='/keytab';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## SSL
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 14:41:36 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Kafka
  
						 
					
						
							
								
									
										
										
										
											2022-06-17 09:29:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								We are using the Spring Boot framework to start our apps, including setting up Kafka. You can
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[use environment variables to set system properties ](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-relaxed-binding-from-environment-variables ),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								including [Kafka properties ](https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#integration-properties ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								From there you can set your SSL configuration for Kafka.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 14:41:36 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Schema Registry
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If Schema Registry is configured to use security (SSL), then you also need to set additional values.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The [MCE ](../../metadata-jobs/mce-consumer-job ) and [MAE ](../../metadata-jobs/mae-consumer-job ) consumers can set 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								default Spring Kafka environment values, for example:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `SPRING_KAFKA_PROPERTIES_SCHEMA_REGISTRY_SECURITY_PROTOCOL`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `SPRING_KAFKA_PROPERTIES_SCHEMA_REGISTRY_SSL_KEYSTORE_LOCATION`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `SPRING_KAFKA_PROPERTIES_SCHEMA_REGISTRY_SSL_KEYSTORE_PASSWORD`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `SPRING_KAFKA_PROPERTIES_SCHEMA_REGISTRY_SSL_TRUSTSTORE_LOCATION`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `SPRING_KAFKA_PROPERTIES_SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[GMS ](../what/gms.md ) can set the following environment variables that will be passed as properties when creating the Schema Registry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Client. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `KAFKA_SCHEMA_REGISTRY_SECURITY_PROTOCOL`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `KAFKA_SCHEMA_REGISTRY_SSL_KEYSTORE_LOCATION`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `KAFKA_SCHEMA_REGISTRY_SSL_KEYSTORE_PASSWORD`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `KAFKA_SCHEMA_REGISTRY_SSL_TRUSTSTORE_LOCATION`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `KAFKA_SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD`  
						 
					
						
							
								
									
										
										
										
											2020-10-02 09:15:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  **Note** In the logs you might see something like
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  `The configuration 'kafkastore.ssl.truststore.password' was supplied but isn't a known config.` The configuration is
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  not a configuration required for the producer. These WARN message can be safely ignored. Each of Datahub services are
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  passed a full set of configuration but may not require all the configurations that are passed to them. These warn
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								>  messages indicate that the service was passed a configuration that is not relevant to it and can be safely ignored.
  
						 
					
						
							
								
									
										
										
										
											2022-01-04 14:41:36 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-06 03:01:12 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								>Other errors: `Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is org.apache.kafka.common.errors.TopicAuthorizationException: Not authorized to access topics: [DataHubUsageEvent_v1]` . Please check ranger permissions or kafka broker logs.