关注 spark技术分享,
撸spark源码 玩spark最佳实践

kafka集群如何在线换掉一台机器

准备一台新的 broker,  每 50个分区是分布在 3台 broker 为一组的 broker上, 所以每 50 个分区是分配在 3 个 broker 上的,现在需要换掉其中的一个 broker,假如现在你需要用 broker 9  换掉 broker 3 , 需要进行以下操作, 
分为两种情况,如果你已经把 老的 broker 停掉了,  直接启动一个 broker 跟下掉的是一样的 broker id, 就好自动开始同步,如果你使用一个 不同的 broker id进行替换,需要进行以下操作1  使用 python 脚本生成  assign.json 文件, 用来对 kafka 分区进行 assign 切换, 在  replicas 里面换掉你需要换掉的 broker

python 脚本

scala 脚本, 这里采用的跟 kafka 默认使用的未考虑机架因素分配策略是一样的

2  执行 kafka reassign 命令, 其中的assign.json文件就是上一步生成的


然后使用 命令来验证是否 reassign 成功

3  如果要同步lag 很大的数据,同步数据会导致 cpu 爆掉,需要先把 日志保留时间调小一些,可以快速同步 lag,例如调为5分钟,可以设置配置  retention.ms=300000,但是不能太小导致  spark streaming  因为 offset 数据 outofrange 挂掉, 观察监控,如果 lag 同步上,broker 在 isr中后,再把 保留时间调整回来 86400000 (24 小时)。
使用

来进行调整

4  观察 kafka 集群的监控 portal, 看看lag是否同步过,使用 describe 命令看看 分区的  副本是否已经换成新的 broker, 如果 reassign过程完成,但是 有可能部分 分区的 leader 不在 prefer broker 上,这时候可以运行命令进行均衡



赞(3) 打赏
未经允许不得转载:spark技术分享 » kafka集群如何在线换掉一台机器
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注公众号:spark技术分享

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏