最近在搞Flink 框架 其中数据源需要模拟kafka取数据 ,于是自己搭建了一套单机的kafka环境,以便用于测试。现整理如下的笔记,发上来和大家分享。后续还会有kafka的相关笔记,会与大家继续分享!

当前文档所部署服务器 IP地址为192.168.118.218    hostname 为web

一、 kafka环境搭建

下载kafka很简单,可以使用源码的方式和安装包的方式安装。这里使用安装包的方式进行安装,只需要进行解压运行即可。
源码下载地址:https://archive.apache.org/dist/kafka/2.5.0/kafka-2.5.0-src.tgz
安装包下载地址:https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-2.5.0.tgz

(1)、解压kafka_2.12-2.5.0.tgz,得到 "kafka_2.12-2.5.0 " 文件夹。

tar -zxvf kafka_2.12-2.5.0.tgz

 (2)、kafka需要安装zookeeper使用,但kafka集成zookeeper,在单机搭建时可直接使用。使用需配置kafka_2.12-2.5.0/config 下的“zookeeper.properties”   

cd kafka_2.12-2.5.0/config

注:经过部署发现 kafka必须配置zookeeper  否则无法启动  无论是单机还是集群,必须,必须,必须开启

 (3)、配置"zookeeper.properties"。修改dataDir和clientPort。前者是快照存放地址(自己随意配置),后者是客户端连接zookeeper服务的端口。默认端口2181 最好默认不修改

vim kafka_2.12-2.5.0/config/zookeeper.properties

 (4)、配置kafka_2.12-2.5.0/config下的“server.properties”,修改log.dirs和zookeeper.connect。前者是日志存放文件夹,后者是zookeeper连接地址(端口和clientPort保持一致)。

vim kafka_2.12-2.5.0/config/server.properties

 

 注:这里的web 为服务器的hostname 能不能写ip呢?大家可以试试,我这里写的是我的hostname

 注:若需要外部访问  一定需要配置listeners   默认为本机IP   端口默认9092  如图:

 到此,kafka的单机环境就搭建成功了。

二 kafka的相关命令

(1) 开启kafka自带zookeeper

前台运行:

./bin/zookeeper-server-start.sh ./config/zookeeper.properties

后台运行:

./bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties

 (2) 开启kafka

前台运行:

bin/kafka-server-start.sh config/server.properties

后台运行:

./bin/kafka-server-start.sh -daemon ./config/server.properties

使用jps命令查看是否正常了

[root@web config]# jps
10978 QuorumPeerMain
31613 ConsoleConsumer
31150 Kafka
41839 Jps

(3)创建kafka主题:

topic为test

./bin/kafka-topics.sh --create --zookeeper 192.168.118.128:2181 --replication-factor 1 --partitions 1 --topic test

#也可以使用下面命令 与上面命令等效
./bin/kafka-topics.sh --create --zookeeper web:2181 --replication-factor 1 --partitions 1 --topic test

其中zookeeper 可以使用hostname 也可以使用IP,若使用hostname,请注意hosts 即/etc/hosts 与hostname最好保持一致!

(4)显示kafka所有主题:

./bin/kafka-topics.sh --list --zookeeper 192.168.118.128:2181

#也可以使用下面命令 与上面命令等效
./bin/kafka-topics.sh --list --zookeeper web:2181




[root@web kafka_2.12-2.5.0]# ./bin/kafka-topics.sh --list --zookeeper 192.168.118.128:2181
__consumer_offsets
test
test1
test2

 (5)查看某个主题的详细信息:

./bin/kafka-topics.sh --zookeeper 192.168.118.128:2181 --describe  --topic test2


Topic: test2	PartitionCount: 2	ReplicationFactor: 1	Configs: 
	Topic: test2	Partition: 0	Leader: 0	Replicas: 0	Isr: 0
	Topic: test2	Partition: 1	Leader: 0	Replicas: 0	Isr: 0

(6)创建kafka生产者:

./bin/kafka-console-producer.sh --broker-list 192.168.118.128:9092 --topic test2

(7)创建kafka消费者 

./bin/kafka-console-consumer.sh --bootstrap-server 192.168.118.128:9092 --topic test2 --from-beginning

--from-beginning 是从头开始消费 

如下图所示:

解释:

--zookeeper:后面接的是你配置的zookeeper地址

--broker-list:默认端口为9092.可自行更改

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐