基本概念
- 安装kafka之前,首先要确保服务器环境中安装了JDK和zookeeper
安装包下载
wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz
创建安装目录
cd DATAmkdir kafka
解压安装包
- 将下载完成的kafka安装包保存到创建的kafka目录中
- 解压kafka安装包到kafka目录:
tar -zxvf kafka_2.13-2.6.0.tgz
配置kafka
- 进入kafka目录
- 进入kafka的config配置目录
- 配置kafka的server.properties配置文件
cd kafka_2.13-2.6.0cd configvi server.properties
broker.id=0
# 端口号
port=9092
# 主机地址,如果是单机可以直接使用127.0.0.1
host.name=127.0.0.1
# 日志存放路径
log.dirs=/DATA/kafka/kafka_2.13-2.6.0/log
# 关联的zookeeper的地址和端口,如果是单机可以直接使用127.0.0.1
zookeeper.connect=127.0.0.1:2181
- 配置kafka的zookeeper.properties配置文件
vi zookeeper.properties
# zookeeper数据目录
dataDir=/DATA/kafka/kafka_2.13-2.6.0/zookeeper/data/dataDir
# zookeeper日志目录
dataLogDir=/DATA/kafka/kafka_2.13-2.6.0/zookeeper/data/dataLogDir
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10
启动kafka
- 启动kafka之前需要首先启动zookeeper. 可以创建批量启动脚本:
vi startKafka.sh
# 启动zookeeper/DATA/kafka/kafka_2.13-2.6.0/bin/zookeeper-server-start.sh /DATA/kafka/kafka_2.13-2.6.0/config/zookeeper.properties &# 默认等待2秒sleep 2# 启动kafka/DATA/kafka/kafka_2.13-2.6.0/bin/kafka-server-start.sh /DATA/kafka/kafka_2.13-2.6.0/config/server.properties &
# 添加脚本执行权限chmod +x startKafka.sh
zkserver.sh start
startKafka.sh
验证kafka
验证主题topic
- 在kafka的bin目录下执行创建topic命令:
kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partion 1 --topic topic名称
- 在kafka的bin目录下执行查询topic的命令:
kafka-topics.sh --list --zookeeper 127.0.0.1:2181
- 在kafka的bin目录下执行删除topic的命令:
kafka-topics.sh --delete --zookeeper 127.0.0.1:2181 --topic topic名称
验证生产者producer
- 在kafka的bin目录下执行启动生产者producer的命令:
kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic topic名称
验证消费者consumer
- 在kafka的bin目录下执行启动消费者consumer的命令:
kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic topic名称 --from-beginning
关闭kafka
vi stopKafka.sh
# 关闭kafka/DATA/kafka/kafka_2.13-2.6.0/bin/kafka-server-stop.sh /DATA/kafka/kafka_2.13-2.6.0/config/server.properties &# 关闭zookeeper/DATA/kafka/kafka_2.13-2.6.0/bin/zookeeper-server-stop.sh /DATA/kafka/kafka_2.13-2.6.0/config/zookeeper.properties &
stopKafka.sh
- 一定要先关闭kafka然后再关闭zookeeper. 否则会导致kafka一直连接zookeeper服务而进入死循环
- 如果kafka进入死循环后则无法关闭需要将kafka服务进程强制杀掉