1.搭建kafka集群(我是3台虚拟机分别为n1,n2,n3)

1.将kafka的安装包上传到虚拟机,并解压(这里我用的是kafka2.12版本)

cd /export/software

tar -zxvf kafka_2.12-2.4.1.tgz -C ../server/

配置软连接

cd /export/server

ln -s kafka_2.12-2.4.1 kafka

2.修改server.properties

cd /export/server/kafka/config

vim server.properties

# 指定broker的id

broker.id=0

#指定kafka的绑定监听的地址(域名通过cat /etc/hosts 查看)

listeners=PLAINTEXT://xxx(域名):9092

#指定kafka数据的位置

log.dirs=/export/server/kafka/data

# 配置zk的三个节点(分别为n1n2n3域名)

zookeeper.connect=xxxn1:2181,xxxn2:2181,xxxn3:2181

 3.将安装好的kafka复制到另外两台服务器

cd /export/server

scp -r kafka_2.12-2.4.1/ n2:$PWD

scp -r kafka_2.12-2.4.1/ n3:$PWD

在 n2 和 n3 分别配置 软连接

cd /export/server

scp -r kafka_2.12-2.4.1/ n2:$PWD

scp -r kafka_2.12-2.4.1/ n3:$PWD

修改另外两个节点的broker.id分别为1和2

---------n2.itcast.cn--------------

cd /export/server/kafka/config

vim server.properties

broker.id=1

listeners=PLAINTEXT://n2xxx:9092



--------n3.itcast.cn--------------

cd /export/server/kafka/config

vim server.properties

broker.id=2

listeners=PLAINTEXT://n3xxx:9092

4.配置KAFKA HOME环境变量

vim /etc/profile

内容如下:

#KAFKA_HOME

export KAFKA_HOME=/export/server/kafka

export PATH=:$PATH:${KAFKA_HOME}

加载环境变量

source /etc/profile

其他的两个节点也是一样的处理

5.启动服务器(前台方法与后台方法)

5.1前台方法

# 启动ZooKeeper

cd /export/server/zookeeper/bin

./zkServer.sh start

对n2,n3同样操作(3台机子的zookeeper都要启动)

# 启动Kafka

cd /export/server/kafka

./kafka-server-start.sh ../config/server.properties

对n2,n3同样操作(3台机子的kafka都要启动)

这个方法会占用前台页面,如要操作需要再开一个窗口,好处就是能直接看到有没报错,建议先用前台打开,如果没有报错再采用后台方法,按住ctrl c 关闭前台

虚拟机搭建kafka集群 kafka部署在虚拟机_kafka

5.2后台方法(同样3台虚拟机都要启动)

此处kafka  2>&1 代表如果有报错,会把报错报错信息重定向到日志里面,方便查看错误(可以不加,建议加上)

# 启动ZooKeeper
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
# 启动Kafka
cd /export/server/kafka
nohup bin/kafka-server-start.sh config/server.properties 2>&1 &

# 测试Kafka集群是否启动成功 : 

使用 jps 查看各个节点 是否出现有kafka

虚拟机搭建kafka集群 kafka部署在虚拟机_虚拟机搭建kafka集群_02

 或者通过 zookeeper查看 brokers节点目录下, 是否有三个ids

虚拟机搭建kafka集群 kafka部署在虚拟机_kafka_03

 6.kafka一键启动/关闭脚本

为了方便将来进行一键启动、关闭Kafka,我们可以编写一个shell脚本来操作。将来只要执行一次该脚本就可以快速启动/关闭Kafka。(新手建议多利用命令进行开关,熟练后可以通过脚本一键开启关闭)

6.1.在节点1中创建 /export/onekey 目录

cd /export/onekey

6.2.准备slave配置文件,用于保存要启动哪几个节点上的kafka(n1,n2.n3域名)

n1.cn

n2.cn

n3.cn

6.3.编写start-kafka.sh脚本

vim start-kafka.sh
cat /export/onekey/slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile;export JMX_PORT=9988;nohup ${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/server.properties >/dev/nul* 2>&1 & "
}&
wait
done

6.4.编写stop-kafka.sh脚本

vim stop-kafka.sh
cat /export/onekey/slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile;jps |grep Kafka |cut -d' ' -f1 |xargs kill -s 9"
}&
wait
done

 

6.5.给start-kafka.sh、stop-kafka.sh配置执行权限

chmod u+x start-kafka.sh
chmod u+x stop-kafka.sh

6.6.执行一键启动、一键关闭(注意:一键启动前需要先把zookeeper启动,因为这里我没配,有能力的可以模仿这个代码把zookeeper也弄了)

./start-kafka.sh
./stop-kafka.sh