
在当今的分布式系统中,Kafka 成为处理高吞吐量、实时数据流的关键工具。本文将详细介绍如何在 OpenStack 上搭建 Kafka 集群,并提供每一步的操作指南。
一、搭建单节点kafka
在zookeeper安装成功的情况下,先将所有节点的zookeeper服务停止
cd /root/zookeeper-3.4.14./bin;./zkServer.sh stop
解压kafka
将提供的kafka_2.11-1.1.1.tgz
软件包,上传至节点的/root 目录下,并执行解 压操作,执行的解压命令如下:
tar -zxvf kafka_2.11-1.1.1.tgz
进入到kafka的bin目录下
cd kafka_2.11-1.1.1
启动自带的zookeeper
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties
启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
发送消息(这个窗口不要退出)
./kafka-topics.sh --create --topic test --zookeeper localhost:2181 --replication-factor 1 --partitions 1
接受消息(在本机新建的窗口中打开)
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
查看从第三条消息开始看
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --partition 0 --offset 3
查看旧消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
分组
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --group grouptest
另一个分组
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --group grouptest1
部署集群
在上面的实验中,使用了单节点模式,所以先要在这个节点中输入如下命令关闭kafka自带的zookeeper
./zookeeper-server-stop.sh -daemon ../config/zookeeper.properties
关闭所有节点的zookeeper
cd /root/zookeeper-3.4.14./bin;./zkServer.sh stop
修改kafka配置文件(每台服务器都需要修改
)
broker.id
:每台机器不能一样
listeners
:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误,可以直接修改为本机的IP
zookeeper.connect
: 因 为 有 3 台 ZooKeeper 服务器,所以在这里 zookeeper.connect
设置为 3 台服务器的IP地址加端口号2181
zookeeper.connect=192.168.20.30:2181,192.168.20.40:2181,192.168.20.50:2181 #这里需要修改为自己服务器的IP地址
进入到zookeeper的安装目录下的bin目录,启动三个节点的zookeeper
./zkServer.sh start
启动后查看状态
./zkServer.sh status
启动正常为两个follower
,一个leader
,如果不是,请自行查看日志文件,查找原因
进入kafka的安装目录,启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
查看服务进程
jps
此时应有三个进程,若kafka没有启动可能是broker id不一致
vim /tmp/kafka-logs/meta.properties
修改为和kafka配置文件相同的id,完成后重启kafka,如果还是未启动,请自行查找原因
在完成上述操作后,服务都正常启动的情况下,输入以下命令
节点1上创建组
./kafka-topics.sh --create --zookeeper 192.168.20.30:2181 --replication-factor 1 --partitions 1 --topic ydsj
节点2和3上查看组
./kafka-topics.sh --list --zookeeper 192.168.20.40:2181
可以查看到创建的组,即为实验成功。