Linux安装Kafka以及避坑整理

1、什么是kafka

Kafka 是由Linkedin 公司开发的一个分布式、支持多分区、多副本,基于 Zookeeper的分布式消息流平台(高版本已经不再依赖zookeeper),它同时也是一款开源的基于发布订阅模式的消息引擎系统。主要支持的功能如下:

由于kafka是高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。

2、Linux安装kafka

(1)下载安装包

下载地址:https://kafka.apache.org/downloads

Linux需要安装jdk1.8以及以上版本

(2)上传和解压压缩包

#解压文件 
tar -zxvf kafka_2.13-3.2.0.tgz 
#重名名文件 
mv kafka2.13 kafka

(3)修改配置文件

1、cd /usr/local/kafka/config 
、 vi server.properties 
#broker实例标识,集群时要保证唯一 
broker.id=1 
# kafka存放数据的目录 
log.dirs=/tmp/kafka-logs 
# 注册中心zookeeper的地址 
zookeeper.connect=zk_ip:2181 
# 访问IP,需要保证服务能够通信 
listeners=PLAINTEXT://linux_ip:9092 
##超时将被删除,也就是说7天之前的数据将被清理掉。 
log.retention.hours=168 
# 是否允许自动创建topic ,若是false,就需要通过命令创建topic(=====我的只有这条没有加上了=====) 
delete.topic.enable=true

(4)启动zookeeper和kafka

1、zk启动 
nohup bin/zookeeper-server-start.sh config/zookeeper.properties & 
、kafka启动 
nohup bin/kafka-server-start.sh config/server.properties &

(5)测试kafka启动是否成功

#检测zk是否启动成功 
ps -ef|grep zookeeper 
#检测kafka启动情况 
ps -ef|grep kafka

(6)测试是否可以正常生产和消费消息

#进入kafka的目录 
cd /usr/local/kafka 
#创建一个名字是test001的topic 
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.203.237:9092 
#开启生产者服务向topic中发送消息 
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.203.237:9092 
#开启消费者消费消息 
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.203.237:9092

实际的效果图:


kafka其他的查询命令汇总:

#查询现有的topic的 
bin/kafka-topics.sh --bootstrap-server 192.168.203.237:9092 --list 
#查询具体的topic的信息 
bin/kafka-topics.sh --bootstrap-server 192.168.203.237:9092 --topic test001 --describe 
#查询消费者组的信息 
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.203.237:9092 --list 
#删除topic 
bin/kafka-topics.sh --bootstrap-server 192.168.203.237:9092 --delete --topic test001

3、搭建过程中的异常

(1)Kafka的消费者无法消费数据,生产者可以生产数据的处理

#查询kafka的日志位置 
egrep -v "^*#|^$" server.properties

(2)删除kafka-log文件夹,重新启动kafka(目的是删除/usr/local/kafka/kafka-logs下的topic数据)

4