Example of Cruise Control goal configuration
By default, Cruise Control is configured with a set of Default, Supported, Hard, Self-healing and Anomaly detection goals in Cloudera Manager. The default configurations can be changed based on what you would like to achieve with the rebalancing.
The following example details how to configure Cruise Control to achieve the following:
- Find dead/failed brokers and create an anomaly to remove load from them
(
self.healing.broker.failure.enabled
) - Move load back to the brokers when the brokers are available again
(
self.healing.goal.violation.enabled
and added goals) - Prevent too frequent rebalances to reduce cluster costs (incremented thresholds, reduced
self.healing.goals
set) - Have an always balanced cluster from the replicas and leader replicas point of view
- Not enable every type of self-healing methods if it is not required (only two type of self-healing is enabled)
Configurations that need to be added to the Cruise Control Server Advanced
Configuration Snippet (Safety Valve) for cruisecontrol.properties property:
self.healing.goal.violation.enabled=true
self.healing.broker.failure.enabled=true
self.healing.exclude.recently.removed.brokers=false
Configurations that need to be set (and available explicitly among properties):
anomaly.notifier.class=com.linkedin.kafka.cruisecontrol.detector.notifier.SelfHealingNotifier
replica.count.balance.threshold=1.25
leader.replica.count.balance.threshold=1.25
Goals that need to be added to Hard goals:
com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal
com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderReplicaDistributionGoal
Goals that need to be added to Self-healing goals:
com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal
com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderReplicaDistributionGoal
Goals that need to be added to Anomaly detection goals:
com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal
com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderReplicaDistributionGoal
Other configurations can remain as set by default.