14.10. 批准优化建议
如果您对最近生成的优化器满意,您可以指示 Cruise Control 启动集群重新平衡并开始重新分配分区。
在生成优化建议并启动集群重新平衡时尽可能少的时间。如果因为您生成了原始的优化建议而通过了一段时间,集群状态可能会有所变化。因此,发起的集群重新平衡可能与您检查的不同。如果不确定,首先生成新的优化建议。
只有一个集群重新平衡(状态为 "Active"),一次只能进行。
先决条件
- 您已从 Cruise Control 中生成了一个优化 工具。
流程
使用
dryrun=false参数向/rebalance、/add_broker或/remove_broker端点发送 POST 请求:如果您使用
/add_broker或/remove_broker端点来生成包含或排除的代理的代理,请使用同一端点(或不使用指定代理)执行重新平衡。对
/rebalance的请求示例curl -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance?dryrun=false'
curl -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance?dryrun=false'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
/add_broker的请求示例curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/add_broker?dryrun=false&brokerid=3,4'
curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/add_broker?dryrun=false&brokerid=3,4'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
/remove_broker的请求示例curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/remove_broker?dryrun=false&brokerid=3,4'
curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/remove_broker?dryrun=false&brokerid=3,4'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cruise Control 启动集群重新平衡,并返回优化建议。
- 检查优化建议中概述的更改。如果更改不是您期望的 ,您可以停止重新平衡。
使用
/user_tasks端点,检查集群的进度。集群重新平衡正在进行中的状态为 "Active"。查看 Cruise Control 服务器上执行的所有集群重新平衡任务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看特定集群重新平衡任务的状态,请提供
user-task-ids参数和任务 ID:curl 'cruise-control-server:9090/kafkacruisecontrol/user_tasks?user_task_ids=c459316f-9eb5-482f-9d2d-97b5a4cd294d'
curl 'cruise-control-server:9090/kafkacruisecontrol/user_tasks?user_task_ids=c459316f-9eb5-482f-9d2d-97b5a4cd294d'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
(可选)缩减代理
在成功重新平衡后,您可以停止任何排除的代理,以缩减 Kafka 集群。
检查正在删除的每个代理都在其日志中没有任何实时分区(
log.dirs)。ls -l <LogDir> | grep -E '^d' | grep -vE '[a-zA-Z0-9.-]+\.[a-z0-9]+-delete$'
ls -l <LogDir> | grep -E '^d' | grep -vE '[a-zA-Z0-9.-]+\.[a-z0-9]+-delete$'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果日志目录与正则表达式
\.[a-z0-9]-delete$匹配,则活动分区仍然存在。如果您有活跃的分区,检查重新平衡已完成,或者配置进行优化。您可以再次运行建议。确保进入下一步之前没有活动分区。停止代理。
su - kafka /opt/kafka/bin/kafka-server-stop.sh
su - kafka /opt/kafka/bin/kafka-server-stop.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认代理已停止。
jcmd | grep kafka
jcmd | grep kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow