安装kafka机群时,每个节点的broker.id不一样,如果一个个修改太麻烦,需要个好的方法,能够批量操作

1,先修改好kafka的server.properties,默认的broker.id=0不用修改
2,将修改好kafka的server.properties,同步到各节点上
3,运行下面脚本程序(注:运行该脚本的节点,能够免密码登录其他节点)

#!/bin/bash
# 各节点的hostname
nodes=(xnode1 xnode2 xnode3 xnode4)

 echo " --------------- 启动  kafka ---------------"

for node in ${nodes[*]} ;do
  nodeNum=`echo $node  |tr -cd "[0-9]"`
  sedcmd="ssh root@$node sed -i s/broker.id=[0-9]/broker.id=${nodeNum}/g  $KAFKA_HOME/config/server.properties "
  #第一次运行后,可注释掉下面一行
  eval $sedcmd
  echo "==== kafka node $node borker.id is"
  ssh root@$node cat $KAFKA_HOME/config/server.properties  | grep 'broker'
  echo "start kafka $node"
  cmd="ssh root@$node   $KAFKA_HOME/bin/kafka-server-start.sh  -daemon  ${KAFKA_HOME}/config/server.properties "
  eval $cmd
done

上面脚本会用hostname最后的数字编号,修改server.properties的broker.id,并启动kafka服务

xnode1 的broker.id=1
xnode2 的broker.id=2
xnode3 的broker.id=3
xnode4 的broker.id=4

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐