kafka环境安装及查看目录结构

本文详细介绍了Kafka的安装步骤,包括上传解压、配置修改、启动服务、创建及查看topic等操作。此外,文章还探讨了Kafka的目录结构,解释了为何每个topic下会为每个分区创建单独的文件夹以及进一步划分为segment的原因,主要是为了管理大型文件和方便数据删除。

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

1、Kafka 环境安装

1.上传及解压

tar zxvf /opt/software/kafka_2.11-0.11.0.2.gz -C /opt/install/

2.创建软连接和环境变量[可选]

cd /opt/install/
ln -s kafka_2.11-0.11.0.2/ kafka

vi /etc/profile
----------------------------
# KAFKA
export KAFKA_HOME=/opt/install/kafka
export PATH=$KAFKA_HOME/bin:$PATH

3.修改配置文件

vi config/server.properties
------------------------------------
delete.topic.enable=true # 要删除topic是否真正删除, 默认为false, 只是标记删除,并没有真正删除, 实际开发环境中使用false
log.dirs=/opt/install/kafka/logs # 设置日志[数据]的存储位置, 默认是/tmp目录下, 容易丢失
zookeeper.connect=singeNode:2181 # 使用我们自己安装的zookeeper

4.启动kafka

# 启动kafka命令
nohup bin/kafka-server-start.sh config/server.properties &
# 关闭Kafka命令
bin/kafka-server-stop.sh

5.创建topic

bin/kafka-topics.sh --create --topic test2 --zookeeper singleNode:2181 --replication-factor 1 --partitions 3

--create # 代表将要创建一个topic, 同理还有--delete(删除),--describe(查看), --alter(修改), --list(列表: 查看有哪些topic)
--topic test # 指定topic名字
--zookeeper singleNode:2181  # kafka连接的zookeeper
--replication-factor 1 # 设置副本因子为1, 这个数值不能大于Broker数量, 即不能大于节点数
--partitions 1 #设置分区数量为1

6.查看topic

# 查看topic列表
bin/kafka-topics.sh --list --zookeeper singleNode:2181
test
# 查看topic的详细信息
bin/kafka-topics.sh --describe --zookeeper singleNode:2181
Topic:test      PartitionCount:1        ReplicationFactor:1     Configs:
        Topic: test     Partition: 0    Leader: 0       Replicas: 0     Isr: 0

7.生产和消费数据

# 1.启动kafka的生产者
bin/kafka-console-producer.sh --broker-list singleNode:9092 --topic test
# 2.启动kafka的消费者
bin/kafka-console-consumer.sh --bootstrap-server singleNode:9092  --topic test --from-beginning 
# 3.在生产者端输入一些数据
hello world kafka

#[参数解释]
--broker-list # 指定kafka服务端,kafka的主机名:端口
--bootstrap-server # 指定kafka服务端,kafka的主机名:端口
--from-beginning # 代表从头消费

image-20210118100424709

image-20210118100439537

2、查看目录结构

在kafka当中, 每一个topic会有一个单独文件夹, 在topic下会为每一个分区生成一个单独的文件夹, 将这二者合并命名,topic-分区号, 例如test-0, 在每一个分区下又会有多个segment, 既然已经有多个分区了, 为什么要再进行划分为多个segment?

答:①如果只存一个文件中, 文件会越来越大, ②Kafka中的数据默认存储7天, 每一天都会删除7天前的数据, 如果都存在一个文件当中, 会不好删

image-20210118105751733

1.生成测试数据

kafka-producer-perf-test.sh --topic test --num-records 500000 --record-size 1000 --producer-props bootstrap.servers=singleNode:9092 --throughput 1000000000

image-20210118104755487

image-20210118104839561

2.查看index和log文件

kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.log --print-data-log

image-20210118105015020

kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.index --print-data-log
kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.index --print-data-log

image-20210118105335288

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值