基本概念
  • 安装kafka之前,首先要确保服务器环境中安装了JDK和zookeeper
安装包下载
  • 下载kafka 2.6.0
  • 使用wget命令下载:
wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz

创建安装目录
  • 创建kafka安装目录:
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

  • 启动zookeeper:
zkserver.sh start

  • 执行脚本,启动kafka:
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
  • 可以创建关闭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 &

  • 执行脚本,关闭kafka:
stopKafka.sh

  • 一定要先关闭kafka然后再关闭zookeeper. 否则会导致kafka一直连接zookeeper服务而进入死循环
  • 如果kafka进入死循环后则无法关闭需要将kafka服务进程强制杀掉