Kafka 环境安装与使用
原创
©著作权归作者所有:来自51CTO博客作者wx59658a994b151的原创作品,请联系作者获取转载授权,否则将追究法律责任
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
(注意:这里的nodefour包括后面遇到的需要换成自己的主机名(提前配好主机映射))
bin/kafka-topics.sh --create --topic test2 --zookeeper nodefour:2181 --replication-factor 1 --partitions 3
--create # 代表将要创建一个topic, 同理还有--delete(删除),--describe(查看), --alter(修改), --list(列表: 查看有哪些topic)
--topic test # 指定topic名字
--zookeeper nodefour:2181 # kafka连接的zookeeper
--replication-factor 1 # 设置副本因子为1, 这个数值不能大于Broker数量, 即不能大于节点数
--partitions 1 #设置分区数量为1
6.查看topic
# 查看topic列表
bin/kafka-topics.sh --list --zookeeper nodefour:2181
test
# 查看topic的详细信息
bin/kafka-topics.sh --describe --zookeeper nodefour: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 nodefour:9092 --topic test
# 2.启动kafka的消费者
bin/kafka-console-consumer.sh --bootstrap-server nodefour:9092 --topic test --from-beginning
# 3.在生产者端输入一些数据
hello world kafka
#[参数解释]
--broker-list # 指定kafka服务端,kafka的主机名:端口
--bootstrap-server # 指定kafka服务端,kafka的主机名:端口
--from-beginning # 代表从头消费
查看目录结构
在kafka当中, 每一个topic会有一个单独文件夹, 在topic下会为每一个分区生成一个单独的文件夹, 将这二者合并命名,topic-分区号
, 例如test-0
, 在每一个分区下又会有多个segment, 既然已经有多个分区了, 为什么要再进行划分为多个segment?
答:①如果只存一个文件中, 文件会越来越大, ②Kafka中的数据默认存储7天, 每一天都会删除7天前的数据, 如果都存在一个文件当中, 会不好删
1.生成测试数据
kafka-producer-perf-test.sh --topic test --num-records 500000 --record-size 1000 --producer-props bootstrap.servers=nodefour:9092 --throughput 1000000000
2.查看index和log文件
kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.log --print-data-log
kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.index --print-data-log