安装Kafka集群

前提条件

三台Linux虚拟机,这里Linux使用的是CentOS7 

安装好zookeeper集群,可参考ZooKeeper集群的安装

集群规划

node2node3node4
zkzkzk
kafkakafkakafka

安装步骤

下载

下载安装包kafka_2.11-2.4.1.tgz,下载地址https://kafka.apache.org/downloads,将安装包上传到Linux

解压

[hadoop@node2 installfile]$ tar -zxvf kafka_2.11-2.4.1.tgz -C ~/soft
​
[hadoop@node2 installfile]$ cd ~/soft/
​
[hadoop@node2 soft]$ ls
hadoop-3.1.3  jdk1.8.0_212  kafka_2.11-2.4.1  zookeeper-3.5.7
​

创建logs目录

[hadoop@node2 soft]$ cd kafka/
[hadoop@node2 kafka]$ ls
bin  config  libs  LICENSE  NOTICE  site-docs
[hadoop@node2 kafka]$ mkdir logs
[hadoop@node2 kafka]$ 

修改配置文件server.properties

# The id of the broker. This must be set to a unique integer for each broker. broke id不能重复
broker.id=0
​
delete.topic.enable=true
​
log.dirs=/home/hadoop/soft/kafka/data

zookeeper.connect=node2:2181,node3:2181,node4:2181/kafka

log.dirs就是数据目录,如果设置为logs,数据目录就会和logs目录在同一个目录下。设置为data目录,logs目录和data目录会分开存放。

修改环境变量

# 修改环境变量
[hadoop@node2 config]$ sudo nano /etc/profile.d/my_env.sh
​
# 末尾添加内容如下:
#KAFKA_HOME
export KAFKA_HOME=/home/hadoop/soft/kafka
export PATH=$PATH:$KAFKA_HOME/bin
​
# 让环境变量生效
[hadoop@node2 config]$ source /etc/profile.d/my_env.sh

同样的方法,在node3node4机器上添加kafka环境变量

分发安装包

[hadoop@node2 config]$ cd ~/soft
​
[hadoop@node2 soft]$ xsync kafka

修改node3 broker id

[hadoop@node3 config]$ nano server.properties
​
broker.id=1

修改node4 broker id

[hadoop@node4 ~]$ cd $KAFKA_HOME/config
[hadoop@node4 config]$ nano server.properties
​
broker.id=2

启动zk集群(三台都执行)

[hadoop@node2 ~]$ zkServer.sh start
[hadoop@node3 ~]$ zkServer.sh start
[hadoop@node4 ~]$ zkServer.sh start

启动kafka(三台都执行)

[hadoop@node2 ~]$ kafka-server-start.sh -daemon /home/hadoop/soft/kafka/config/server.properties
[hadoop@node3 ~]$ kafka-server-start.sh -daemon /home/hadoop/soft/kafka/config/server.properties
[hadoop@node4 ~]$ kafka-server-start.sh -daemon /home/hadoop/soft/kafka/config/server.properties

查看进程(三台都执行)

[hadoop@node2 ~]$ jps
1987 Jps
1898 Kafka
1499 QuorumPeerMain
​
[hadoop@node3 ~]$ jps
2024 Jps
1501 QuorumPeerMain
1903 Kafka
​
[hadoop@node4 ~]$ jps
1896 Kafka
2008 Jps
1500 QuorumPeerMain
​

测试使用

创建topic

[hadoop@node2 soft]$ kafka-topics.sh --zookeeper node2:2181/kafka --create --replication-factor 3 --partitions 1 --topic first
Created topic first

查看topic

[hadoop@node2 soft]$ kafka-topics.sh --zookeeper node2:2181/kafka --list
first

Kafka集群启动停止脚本

创建脚本

进入~/bin目录,创建kf.sh

[hadoop@node2 soft]$ cd ~/bin
[hadoop@node2 bin]$ vim kf.sh

kf.sh内容如下:

#! /bin/bash
case $1 in
"start"){
    for i in node2 node3 node4
    do
        echo " --------启动 $i Kafka-------"
        ssh $i "/home/hadoop/soft/kafka/bin/kafka-server-start.sh -daemon /home/hadoop/soft/kafka/config/server.properties"
    done
};;
"stop"){
    for i in node2 node3 node4
    do
        echo " --------停止 $i Kafka-------"
        ssh $i "/home/hadoop/soft/kafka/bin/kafka-server-stop.sh stop"
    done
};;
esac

添加权限

[hadoop@node2 bin]$ chmod u+x kf.sh 

测试kf集群启动脚本

[hadoop@node2 bin]$ kf.sh start
 --------启动 node2 Kafka-------
 --------启动 node3 Kafka-------
 --------启动 node4 Kafka-------
[hadoop@node2 bin]$ jps
2071 Jps
2041 Kafka

测试kf集群停止脚本

[hadoop@node2 bin]$ kf.sh stop
 --------停止 node2 Kafka-------
No kafka server to stop
 --------停止 node3 Kafka-------
No kafka server to stop
 --------停止 node4 Kafka-------
No kafka server to stop
[hadoop@node2 bin]$ jps
2121 Jps
​

完成!enjoy it

    原文作者:Hadoop_Liang
    原文地址: https://blog.csdn.net/qq_42881421/article/details/124465620
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞