Linux服务器下kafka环境搭建

一、kafka安装

下载kafka:下载地址链接

kafka版本2.2+的版本,已经不需要依赖zookeeper来查看、创建topic,新版本使用--bootstrap-server替换老版本的--zookeeper-server。 

# 创建kafka安装目录
[root@icoolkj home]# mkdir kafka
[root@icoolkj home]# cd kafka
# 使用wget命令下载
[root@icoolkj kafka]# wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
# 解压kafka安装包到kafka目录
[root@icoolkj kafka]# tar -xzf kafka_2.13-3.4.0.tgz

 二、kafka配置

1、配置kafka的server.properties配置文件

# 进入kafka目录
[root@icoolkj kafka_2.13-3.4.0]# 
# 创建 data 目录
[root@icoolkj kafka_2.13-3.4.0]# mkdir data
[root@icoolkj kafka_2.13-3.4.0]# cd data
# 创建 logs 目录
[root@icoolkj data]# mkdir logs dataDir dataLogDir
# 进入kafka的config配置目录
[root@icoolkj data]# cd /home/kafka/kafka_2.13-3.4.0/config/
# 配置kafka的server.properties配置文件
[root@icoolkj config]# vi server.properties

broker.id=0
# 端口号
port=9092
# 主机地址,如果是单机可以直接使用127.0.0.1
host.name=127.0.0.1
# 日志存放路径
log.dirs=/home/kafka/kafka_2.13-3.4.0/data/logs
# 关联的zookeeper的地址和端口,如果是单机可以直接使用127.0.0.1
zookeeper.connect=127.0.0.1:2181

2、配置kafka的zookeeper.properties配置文件

# 配置kafka的zookeeper.properties配置文件
[root@icoolkj config]# vi zookeeper.properties 

# zookeeper数据目录
dataDir=/home/kafka/kafka_2.13-3.4.0/data/dataDir
# zookeeper日志目录
dataLogDir=/home/kafka/kafka_2.13-3.4.0/data/dataLogDir
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10

 三、kafka启动

# 进入kafka目录
[root@icoolkj config]# cd /home/kafka/
# 创建启动脚本(启动kafka之前需要首先启动zookeeper)
[root@icoolkj config]# vi startKafka.sh

keeper
/home/kafka/kafka_2.13-3.4.0/bin/zookeeper-server-start.sh /home/kafka/kafka_2.13-3.4.0/config/zookeeper.properties &
# 默认等待2秒
sleep 2
# 启动kafka
/home/kafka/kafka_2.13-3.4.0/bin/kafka-server-start.sh /home/kafka/kafka_2.13-3.4.0/config/server.properties &

# 添加脚本执行权限
[root@icoolkj kafka]# chmod +x startKafka.sh
# 执行脚本启动kafka
[root@icoolkj kafka]# sh startKafka.sh

 四、kafka验证

1、验证主题topic

# 进入kafka的bin目录 
# 创建topic命令
[root@icoolkj kafka]# cd /home/kafka/kafka_2.13-3.4.0/bin/
[root@icoolkj bin]# sh kafka-topics.sh --create --topic kafka_test --bootstrap-server localhost:9092
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic kafka_test.

# 查询topic命令
[root@icoolkj bin]# sh kafka-topics.sh --list --bootstrap-server localhost:9092
kafka_test
[root@icoolkj bin]#

# 删除topic命令
[root@icoolkj bin]# sh kafka-topics.sh --delete --topic kafka_test --bootstrap-server localhost:9092
[root@icoolkj bin]# sh kafka-topics.sh --list --bootstrap-server localhost:9092

[root@icoolkj bin]# 

 

2、验证生产者producer

# 启动生产者producer命令
[root@icoolkj bin]# sh kafka-console-producer.sh --bootstrap-server  localhost:9092 --topic p_test
# 执行上述命令后,就会在控制台等待键入消息体,直接输入消息值(value)即可,每行(以换行符分隔)表示一条消息,如下所示。
>hello kafka!
>你好 kafka!

3、验证消费者consumer

# 在kafka的bin目录下执行启动消费者consumer的命令
[root@icoolkj bin]# sh kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic p_test --from-beginning
hello kafka!
你好 kafka!
[root@icoolkj bin]# 

五、关闭kafka

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

[root@icoolkj bin]# cd /home/kafka/
[root@icoolkj kafka]# vi stopKafka.sh

# 关闭kafka
/home/kafka/kafka_2.13-3.4.0/bin/kafka-server-stop.sh /home/kafka/kafka_2.13-3.4.0/config/server.properties &
# 关闭zookeeper
/home/kafka/kafka_2.13-3.4.0/bin/zookeeper-server-stop.sh  /home/kafka/kafka_2.13-3.4.0/config/zookeeper.properties &

你可能感兴趣的:(kafka,分布式)