前期准备工作:
kafka的安装及使用需要用到ZooKeeper,所以需要提前安装搭建好ZooKeeper,比较早版本的kafka自带zookeeper插件。
kafka 的安装及部署
一、官网下载kafka.tgz包
// 通过wget下载zookeeper安装包
[bigdata@linux ~]$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.2.1/kafka_2.11-0.10.2.1.tgz
二、安装kafka
// 将kafka解压到安装目录
$ tar –zxvf kafka_2.12-0.10.2.1.tgz –C /usr/local/
$ cd /usr/local/
// 重命名为kafka
$ mv kafka_2.12-0.10.2.1.tgz kafka
三、修改kafka配置文件
// 进入kafka安装目录 bin/config 或 bin/config/kraft 文件夹中找到 server.properties 并进行修改
$ cd /usr/local/kafka/config
$ vim server.properties
// 修改kafka配置文件
broker.id=0
delete.topic.enable=true
advertised.listeners=PLAINTEXT://172.16.244.129:9092
advertised.host.name=172.16.244.129
advertised.port=9092
log.dirs=/usr/local/kafka/logs
zookeeper.connect=172.16.244.129:2181
四、 启动 kafka 命令
启动kafka服务 !!! 启动之前需要启动Zookeeper服务!!!!
// 启动zookeeper 命令
$ ./bin/zookeeper-server-start.sh config/zookeeper.properties &
// 启动 kafka 命令
$ bin/kafka-server-start.sh -daemon ./config/server.properties
五、kafka的使用:生产 - 消费
1. 创建topic
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic recommender
2. kafka-console-producer
进入 生产消息的编辑模式,进行编辑并发送
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic recommender
Hello World !!!
3. kafka-console-consumer
消费消息,消费者客户端接收信息与生产消息同步
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic recommender
Hello World !!!
五、关闭kafka服务
[bigdata@linux kafka_2.12-0.10.2.1]$ bin/kafka-server-stop.sh
先关闭kafka, 再关闭Zookeeper
六、删除topic : topic1
删除topic : topic1
# ./bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topic1
或者:
# ./bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 127.0.0.1:2181 --topic topic1
问题:
对 topic1 进行删除操作后,再次查看topic的时候,topic1 没有直接删除,而且后面出现了 “marked for deletion” ,只是将 topic1 标记了删除
解决:
如果没有在kafka/config/server.properties 配置:delete.topic.enable=true 时,执行topic的删除命令只是把topic标记为marked for deletion,并不是真正的删除,如果此时想彻底删除,就需要登录Zookeeper客户端进行删除
// 启动zookeeper客户端
# ./bin/zkCli.sh
// 找到topic所在目录
# ls /brokers/topics
[topic1]
[zk: localhost:2181(CONNeCTED) 1]
// 出现上述画面就是进入zookeeper客户端
// 在客户端执行删除命令
deleteall /brokers/topics/topic1
查看topic的列表
# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
重启zookeeper 和 kafka 命令!!