kafka集群搭建

1、准备环境

(1)准备三台虚拟机

192.168.225.111
192.168.225.112
192.168.225.113

(2)jdk安装参考这里

(3)分别修改三台虚拟机的hostname

vim  /etc/hostname
192.168.225.111的修改为kafka-broker1
192.168.225.112的修改为kafka-broker2
192.168.225.113的修改为kafka-broker3

(4)分别修改三台虚拟机的hosts

vim /etc/hosts,在三台虚拟机的hosts都添加如下内容,这样做是为三台虚拟机之间可以通过主机名解析IP地址
192.168.225.111  kafka-broker1
192.168.225.112  kafka-broker2
192.168.225.113  kafka-broker3

(5)三台虚拟机之间相互能够通过ssh免密访问(主要是为了后面执行一键启动kafka集群脚本不要在输入密码)

分别在三台虚拟机上执行ssh-keygen,一路按回车键就可以
然后
在kafka-broker1虚拟机上依次执行ssh-copy-id  kafka-broker1,ssh-copy-id  kafka-broker2,ssh-copy-id  kafka-broker3,然后输入yes,输入kafka-broker1、kafka-broker2、kafka-broker3密码

在kafka-broker2虚拟机上依次执行ssh-copy-id  kafka-broker1,ssh-copy-id  kafka-broker3,然后输入yes,输入kafka-broker1、kafka-broker3密码

在kafka-broker3虚拟机上依次执行ssh-copy-id  kafka-broker1,ssh-copy-id  kafka-broker2,然后输入yes,输入kafka-broker1、kafka-broker2密码

2、安装zookeeper

(1)下载zookeeper
下载地址
在这里插入图片描述

(2)分别在三台虚拟机上传apache-zookeeper-3.8.4-bin.tar.gz到/opt目录下并解压

tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4 zookeeper

(3)分别在三台虚拟机上修改zookeeper配置文件

cd /opt/zookeeper/conf
cp zoo_example.cfg  zoo.cfg
vim zoo.cfg
修改如下内容:
dataDir=/var/lib/zookeeper
添加如下内容
server.1=kafka-broker1:2888:3888
server.2=kafka-broker2:2888:3888
server.3=kafka-broker3:2888:3888

(4)分别在三台虚拟机创建如下目录

mkdir /var/lib/zookeeper
cd /var/lib/zookeeper
touch myid
在192.168.225.111虚拟机上执行echo '1'  > myid
在192.168.225.112虚拟机上执行echo '2'  > myid
在192.168.225.113虚拟机上执行echo '3'  > myid

(5)分别在三台虚拟机启动zookeeper

分别在三台虚拟机启动zookeeper
cd /opt/zookeeper
bin/zkServer.sh start    

(6)脚本一键启动三台虚拟机上的zookeeper
在kafka-broker1虚拟机的/root/bin目录下创建zk.sh,内容如下:

case $1 in
"start") {
       for i in kafka-broker1 kafka-broker2 kafka-broker3
         do
           echo -----------------$i zookeeper 启动-----------------
              ssh $i "/opt/zookeeper/bin/zkServer.sh start"

         done
};;

"stop") {
       for i in kafka-broker1 kafka-broker2 kafka-broker3
         do
           echo -----------------$i zookeeper 停止-----------------
              ssh $i "/opt/zookeeper/bin/zkServer.sh stop"

         done
};;

"status") {
       for i in kafka-broker1 kafka-broker2 kafka-broker3
         do
           echo -----------------$i zookeeper 状态-----------------
              ssh $i "/opt/zookeeper/bin/zkServer.sh status"

         done
};;

esac

3、安装kafka

(1)下载kafka
下载地址
在这里插入图片描述
(2)分别在三台虚拟机上传到/opt目录下并解压

tar -zxvf kafka_2.12-3.7.0.tgz
mv kafka_2.12-3.7.0  kafka

(4)分别在三台虚拟机上创建kafka-logs目录

mkdir -p /var/lib/kafka-logs

(4)分别在三台虚拟机上修改kafka的配置文件

修改/opt/kafka/config/server.properties内容如下:

在192.168.225.111虚拟机上修改
broker.id=1
advertised.listeners=PLAINTEXT://kafka-broker1:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=kafka-broker1:2181,kafka-broker2:2181,kafka-broker3:2181/kafka

在192.168.225.112虚拟机上修改
broker.id=2
advertised.listeners=PLAINTEXT://kafka-broker2:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=kafka-broker1:2181,kafka-broker2:2181,kafka-broker3:2181/kafka

在192.168.225.113虚拟机上修改
broker.id=3 
advertised.listeners=PLAINTEXT://kafka-broker3:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=kafka-broker1:2181,kafka-broker2:2181,kafka-broker3:2181/kafka

4、一键脚本启动kafka集群

在kafka-broker1虚拟机的/root/bin目录下创建如下脚本:

xcall.sh脚本

#!/bin/bash
for i in kafka-broker1 kafka-broker2 kafka-broker3
  do
    echo -------------------$i-----------------------
    ssh $i "$*"
  done

kafka.sh脚本

#!/bin/bash

for i in kafka-broker1 kafka-broker2 kafka-broker3
  do
    echo -------------------$i-----------------------
    ssh $i "$*"
  done
kafka-broker1:~/bin # cat kafka.sh
#!/bin/bash


case $1 in
"start") {
       for i in kafka-broker1 kafka-broker2 kafka-broker3
         do
           echo -----------------$i kafka 启动-----------------
              ssh $i "/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties"
         done
};;


"stop") {
       for i in kafka-broker1 kafka-broker2 kafka-broker3
         do
           echo -----------------$i kafka 停止-----------------
              ssh $i "/opt/kafka/bin/kafka-server-stop.sh"
         done
};;

esac

kafka-cluster.sh脚本(一键启停kafka集群脚本)

#!/bin/bash

case $1 in
"start") {
           echo -----------------$i 启动kafka集群-----------------
           echo -----------------$i zookeeper cluster 启动-----------------
           zk.sh start
           echo -----------------$i kafka cluster 启动-----------------
           kafka.sh start
};;


"stop") {
           echo -----------------$i 停止kafka集群-----------------
           echo -----------------$i kafka cluster 停止-----------------
           kafka.sh stop

           kafka_count=$(xcall jps | grep Kafka | wc -l)
           while [ $kafka_count -gt 0 ]
             do
               sleep 1
               kafka_count=$(xcall jps | grep Kafka | wc -l)
             done

           echo -----------------$i zookeeper cluster 停止-----------------
           zk.sh stop
};;

esac

分别以上脚本增加执行权限

chmod  777   kafka-cluster.sh  kafka.sh  xcall  zk.sh

执行kafka-cluster.sh脚本启动kafka集群

./kafka-cluster.sh start

在这里插入图片描述

执行kafka-cluster.sh脚本停止kafka集群

./kafka-cluster.sh stop

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下雨天的太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值