Linux机器部署Kafka集群

1. 使用的版本及下载网址

kafka version:kafka_2.13-6.2.0

kafka包我本地有,官方下载网址是Apache Kafka

zookeeper version:zookeeper-3.5.9

下载网址:https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz

我的三台机器IP分别为(工作机器,省略部分IP地址):

*.*.25.102

*.*.25.103

*.*.25.104

2. 安装步骤

1. 确认本机安装jdk

前期需要在本地机器上安装jdk,并在/etc/profile文件中添加PATH路径。使用以下命令确认jdk安装成功

java -version

结果类似如下

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

2. zookeeper配置安装

解压zookeeper包至/opt目录下,指令如

tar -zxf apache-zookeeper-3.5.9-bin.tar.gz -C /opt

编辑 /etc/profile文件,添加zookeeper路径代码

export ZOOKEEPER_PREFIX=/opt/apache-zookeeper-3.5.9-bin
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
export ZOO_LOG_DIR=/var/recordLog/zookeeper/log

ZOO_LOG_DIR属性可以自行更改,此为log的保存位置。然后执行下述指令语句刷新环境以保存更改

source /etc/profile

接着进入/opt/apache-zookeeper-3.5.9-bin/conf目录下,执行下述指令复制zoo_sample文件

cp zoo_sample.cfg zoo.cfg

编辑文件zoo.cfg

更改datadir的路径代码,最好存储在/var下,样例如下

dataDir=/var/recordLog/zookeeper/data

在clientPort 下方加入代码如下(IP地址改成自己的机器的IP地址)

clientPort=2181
server.1=*.*.25.102:2881:3881
server.2=*.*.25.103:2881:3881
server.3=*.*.25.104:2881:3881

保存退出后,输入下述指令

mkdir -p /var/recordLog/zookeeper/data
echo 1 > /var/recordLog/zookeeper/data/myid

第一个目录创建在之前ZOO_LOG_DIR的上一层目录下,第二个指令根据自定义机器号将echo值更改成1,2,3

三台机器都配置完成后,在三台机器上都启动zookeeper

zkServer.sh start

出现以下反馈

Zookeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.5.9-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

执行指令查看zookeeper状态

zkServer.sh status

三台机器中两台出现下述图1反馈,一台出现下述图2反馈

Zookeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.5.9-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false
Mode: follower
Zookeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.5.9-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false
Mode: leader

即为配置成功

3. kafka配置安装

同样先解压kafka文件到/opt目录下

编辑 /etc/profile文件,添加kafka路径代码

export KAFKA_HOME=/opt/kafka-6.2.0
export PATH=$PATH:$KAFKA_HOME/bin

接下来,由于我的kafka包比较特殊,网站上其他相关教程中在kafka包下会有conf文件夹,在这个文件夹下找到server.properties文件进行配置,而我的kafka包中并没有。使用find找到server.properties后再进行配置。配置步骤如下:

1. broker.id根据机器改成 broker.id=0 或者 broker.id=1。

2. 找到下述代码并进行如下更改

#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://:9092
#去掉 # 号使它执行

3. 找到下述代码并进行如下更改

#advertised.listeners=PLAINTEXT://your.host.name:9092
advertised.listeners=PLAINTEXT://*.*.25.102:9092
#your.host.name改成本机的设备ip地址

4. 更改 log.dirs 的路径

log.dirs=/var/recordLog/kafka/kafka-logs
#可以自己更改成需要的地址

5. 找到并配置zookeeper.connect段的代码

zookeeper.connect=*.*.25.102:2181,*.*.25.103:2181,*.*.25.104:2181/KafkaTest
#最后 / 后面的名字可以自己定,这个是kafka项目的运行名称

在三台机器都配置完成并保存退出后,在三台机器都启动kafka

kafka-server-start /opt/kafka-6.2.0/etc/kafka/server.properties
#后面的路径是你的kafka包的server.properties文件的路径

查看打印的信息,找到下图这一行,在三台机器上对比这行的信息

[2023-12-6 13:14:09,652] INFO Cluster ID = vuJHWISXKQsxjWcjsac9by (kafka.server.KafkaServer)

需要三台机器的ID一致

还可以通过以下指令进入zookeeper,查看kafka节点是否运行

zkCli.sh
ls /

反馈结果如下

[KafkaTest, zookeeper]

可以通过下述指令查看kafka

ls /KafkaTest
#之前配置kafka的 zookeeper.connect时设置的名称

反馈结果应该类似如下

[admin, brokers, cluster, config, consumers, controller, controller_epoch, feature, isr_change_notification, latest_producer_id_block, log_dir_event_notification]

可以通过下述指令查看集群ids

ls /KafkaTest/brokers/ids

反馈如下

[0, 1, 2]

配置结束

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

永恒的白虎王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值