13.4. 配置并启动 Cruise Control
配置 Cruise Control 使用的属性,然后使用 kafka-cruise-control-start.sh
脚本启动 Cruise Control 服务器。服务器托管到整个 Kafka 集群的单个机器上。
Cruise Control 启动时会自动创建三个主题。如需更多信息,请参阅 自动创建的主题。
先决条件
-
以
kafka
用户身份登录 Red Hat Enterprise Linux。 - 您已下载了 Cruise Control。
- 您已部署了 Cruise Control Metrics Reporter。
流程
-
编辑 Cruise Control 属性文件 (
/opt/cruise-control/config/cruisecontrol.properties
)。 配置以下示例配置中显示的属性:
# The Kafka cluster to control. bootstrap.servers=localhost:9092 1 # The replication factor of Kafka metric sample store topic sample.store.topic.replication.factor=2 2 # The configuration for the BrokerCapacityConfigFileResolver (supports JBOD, non-JBOD, and heterogeneous CPU core capacities) #capacity.config.file=config/capacity.json #capacity.config.file=config/capacityCores.json capacity.config.file=config/capacityJBOD.json 3 # The list of goals to optimize the Kafka cluster for with pre-computed proposals default.goals={List of default optimization goals} 4 # The list of supported goals goals={list of main optimization goals} 5 # The list of supported hard goals hard.goals={List of hard goals} 6 # How often should the cached proposal be expired and recalculated if necessary proposal.expiration.ms=60000 7 # The zookeeper connect of the Kafka cluster zookeeper.connect=localhost:2181 8
- 1
- Kafka 代理的主机和端口号(始终为端口 9092)。
- 2
- Kafka 指标示例存储主题的复制因素。如果要在单节点 Kafka 和 ZooKeeper 集群中评估 Cruise Control,请将此属性设置为 1。对于生产环境,请将此属性设置为 2 或以上。
- 3
- 为代理资源设置最大容量限制的配置文件。使用适用于 Kafka 部署配置的文件。如需更多信息,请参阅 容量配置。
- 4
- 使用完全限定域名(FQDN)的以逗号分隔的默认优化目标列表。许多主要优化目标(请参见 5)已设为默认优化目标;如果需要,您可以添加或删除目标。更多信息请参阅 第 13.5 节 “优化目标概述”。
- 5
- 使用 FQDN 以逗号分隔的主要优化目标列表。要完全排除用于生成优化提议的目标,请将它们从列表中删除。更多信息请参阅 第 13.5 节 “优化目标概述”。
- 6
- 使用 FQDN 以逗号分隔的硬目标列表。七大主要优化目标已设置为硬目标;如果需要,您可以添加或删除目标。更多信息请参阅 第 13.5 节 “优化目标概述”。
- 7
- 刷新从默认优化目标生成的缓存的优化建议的时间间隔(以毫秒为单位)。更多信息请参阅 第 13.6 节 “优化提议概述”。
- 8
- ZooKeeper 连接的主机和端口号(始终端口 2181)。
启动 Cruise Control 服务器。默认情况下,服务器在端口 9092 上启动;(可选)指定不同的端口。
cd /opt/cruise-control/ ./kafka-cruise-control-start.sh config/cruisecontrol.properties <port_number>
要验证 Cruise Control 是否正在运行,请将 GET 请求发送到 Cruise Control 服务器的
/state
端点:curl -X GET 'http://<cc_host>:<cc_port>/kafkacruisecontrol/state'
自动创建的主题
下表显示了在 Cruise Control 启动时自动创建的三个主题。Cruise Control 需要这些主题才能正常工作,且不得删除或更改。
自动创建的主题 | 创建人 | 功能 |
---|---|---|
| Cruise Control Metrics Reporter | 将 Metrics Reporter 中的原始指标存储在每个 Kafka 代理中。 |
| Sything Control | 存储每个分区的派生指标。它们由指标示例聚合器创建。 |
| Sything Control | 存储用于创建 Cluster Workload Model 的指标样本。 |
要确保在自动创建的主题中禁用日志压缩,请确保配置 Cruise Control Metrics Reporter,如 第 13.3 节 “部署 Cruise Control Metrics Reporter” 所述。日志压缩可以删除 Cruise Control 所需的记录,并防止它正常工作。