Kafka安装部署

本文详细介绍了Kafka与Zookeeper的安装部署过程,包括Zookeeper的安装踩坑、配置修改,以及Kafka的集群搭建,涵盖了创建、查看与管理topic,以及日志分段和备份的查看。最后,文章展示了不同备份情况下分区的分布情况,并解释了segment文件的查找机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.zookeeper安装部署

zookeeper使用的版本为3.5.5
http://zookeeper.apache.org/releases.html
下载文件时注意:下载bin.tar.gz文件
在这里插入图片描述

在这里插入图片描述

1.1踩坑

踩坑:第一次下载成了tar.gz包,启动不成功,各种百度排错。
查看日志报错:错误: 找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain
问题解决方案:转载(https://blog.youkuaiyun.com/jiangxiulilinux/article/details/96433560

1.2安装部署

(1)解压安装包

wget http://apache.stu.edu.tw/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz -C /usr/software/

(2)创建软链接

cd /usr/software/
ln -s apache-zookeeper-3.5.5-bin/ zookeeper

(3)复制配置文件

cd /usr/software/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

(4)修改配置文件
在这里插入图片描述

(5)新建数据存放目录

mkdir -p /usr/data/zookeeper

1.3操作zookeeper

cd /usr/software/zookeeper
# 启动zk
./bin/zkServer.sh start 

# 查看状态
./bin/zkServer.sh status 

# 重启zk
./bin/zkServer.sh restart

# 停止zk
./bin/zkServer.sh stop

2.kafka安装部署

kafka使用版本2.12-2.3.0
http://kafka.apache.org/downloads
在这里插入图片描述

2.1安装部署

(1)解压

wget http://apache.stu.edu.tw/kafka/2.3.0/kafka_2.12-2.3.0.tgz
tar -zxvf kafka_2.12-2.3.0.tgz -C /usr/software/
cd /usr/software/
# 创建软链接
ln -s kafka_2.12-2.3.0.tgz kafka

(2)修改配置文件
在 kafka 安装目录下有一个 config/server.properties 文件,修改该文件。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)kafka启动与停止

# 启动zk
cd /usr/software/zookeeper/bin
./zkServer.sh start
# 启动kafka
# 在命令后添加-daemon 参数,可以使 kafka 以守护进程方式启动,即不占用窗口。
cd /usr/software/kafka
./bin/kafka-server-start.sh -daemon config/server.properties
# 停止kafka
cd /usr/software/kafka
./bin/kafka-server-stop.sh

2.2kafka操作

(1)创建topic

./bin/kafka-topics.sh --create --bootstrap-server 192.168.73.201:9092 --replication-factor 1 --partitions 1 --topic test

(2)查看topic

./bin/kafka-topics.sh --list --bootstrap-server 192.168.73.201:9092

(3)发送消息

./bin/kafka-console-producer.sh --broker-list 192.168.73.201 --topic test

(4)消费消息

./bin/kafka-console-consumer.sh --bootstrap-server 192.168.73.201:9092 --topic test --from-beginning

(5)删除topic

./bin/kafka-topics.sh --delete --bootstrap-server 192.168.73.201:9092 --topic test

3.简单集群搭建

以 第一台kafka为母机再克隆两台 Kafka 主机。在克隆完毕后,需要修改 server.properties中的 broker.id、 listeners 与 advertised.listeners。
kafka2
在这里插入图片描述

kafka3
在这里插入图片描述

完成之后我的集群环境是

  • zookeeper:192.168.73.200:2181
  • kafka1:192.168.73.201:9092
  • kafka2:192.168.73.202:9092
  • kafka3:192.168.73.203:9092

4.日志查看

这里说的日志不是 Kafka的启动日志,启动日志在 Kafka安装目录下的logs/server.log中。
消息在磁盘上都是以日志的形式保存的,日志是存放在/tmp/kafka_logs目录中的消息日志,即 partition 与 segment。我的日志文件路径是/usr/data/kafka_logs

4.1查看分区与备份

(1)1个分区1个备份
创建一个主题,命名为 test,创建一个分区,一个备份。

/usr/software/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.73.201:9092 --replication-factor 1 --partitions 1 --topic test
cd /usr/data/kafka_logs

在这里插入图片描述

(2)3个分区一个备份
创建一个主题,命名为 one,创建三个分区,但仍为一个备份。 依次查看三台broker,可以看到每台 broker 中都有一个 one主题的分区。

/usr/software/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.73.201:9092 --replication-factor 1 --partitions 3 --topic one

kafka1
在这里插入图片描述

kafka2
在这里插入图片描述

kafka3
在这里插入图片描述

(3)3个分区3个备份
创建一个主题,命名为two,创建三个分区,三个备份。 依次查看三台broker,可以看到每台 broker 中都有三份two主题的分区。

/usr/software/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.73.201:9092 --replication-factor 3 --partitions 3 --topic two

kafka1
在这里插入图片描述

kafka2
在这里插入图片描述

kafka3
在这里插入图片描述

4.2查看段segment

(1)segment文件
segment 是一个逻辑概念,其由两类物理文件组成,分别为.index文件和.log文件。.log文件中存放的是消息,而.index文件中存放的是.log文件中消息的索引。
在这里插入图片描述

如何进行消息查找:
若kafka中有5000条消息,每1000条存储在一个文件中;这样分段文件名称为
00000000000000000000.log和00000000000000000000.index;第二段的文件名就是00000000000000001000.log和00000000000000001000.index。

查找第1006条消息

  1. 通过二分法先确定到00000000000000001000.log和00000000000000001000.index文件
  2. 1006-1000=6,通过二分法在index文件中找到小于等于6的位置
  3. 通过index中的值,从log文件顺序查找到对应位置的消息

(2)查看segemnt
对于 segment 中的 log 文件,不能直接通过cat命令查看其内容,而是需要通过 kafka自带的一个工具查看。

/usr/software/kafka/bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /usr/data/kafka-logs/test-0/00000000000000000000.log --print-data-log

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值