最近在搞Flink 框架 其中数据源需要模拟kafka取数据 ,于是自己搭建了一套单机的kafka环境,以便用于测试。现整理如下的笔记,发上来和大家分享。后续还会有kafka的相关笔记,会与大家继续分享!
当前文档所部署服务器 IP地址为192.168.118.218 hostname 为web
下载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的单机环境就搭建成功了。
(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.可自行更改