Kafka集群集成ZooKeeper集群实战手册
目录
目标
简介
应用场景
搭建集群
准备环境
搭建步骤
启动Kafka集群
关闭Kafka集群
目标
- 了解Kafka的特性和应用场景;
- 熟练搭建Kafka&ZooKeeper集群,并能监控集群状态。
简介
Kafka是一个分布式流处理平台。流处理平台有以下三种特性:
- 发布和订阅流式的记录,这一方面与消息队列或者企业消息系统类似;
- 持久化流式记录,并且有较好的容错性;
- 在流式记录产生时就进行处理。
应用场景
- 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据,相当于消息队列;
- 构建实时流式应用程序,对这些流数据进行转换或者影响 (就是流处理,通过kafka stream topic和topic之间内部进行变化)。
搭建集群
准备环境
- 三台Linux操作系统的虚拟机,本文以CentOS7为讲解案例;
- 都具备JDK环境;
- 拥有ZooKeeper集群环境,不一定要安装在我们这三台虚拟机上,具体安装操作参考这篇博客:ZooKeeper集群搭建详细手册。
搭建步骤
第一步:点击进入官网下载页面,按照如下操作,这里以kafka_2.13-2.6.0.tgz版本为例:
第二步:上传服务器,这里以Linux操作系统为例(略);
第三步:解压压缩包,我把它解压在/opt目录下:
tar -zxvf kafka_2.13-2.6.0.tgz
第四步:进入/opt/kafka_2.13-2.6.0/config目录,配置broker的id(id为整数,且同一个集群下唯一。),kafka数据位置;
cd /opt/kafka_2.13-2.6.0/config
vi server.properties
#########################修改server.properties的内容如下:#########################
#我设置broker的id是0。
broker.id=0
#我把数据放在/opt/kafka_2.13-2.6.0/data目录。特别注意:log.dirs表示数据加载的日志目录,不是运行日志目录。
log.dirs=/opt/kafka_2.13-2.6.0/data
#设置advertised.listeners为当前机器的IP。
advertised.listeners=PLAINTEXT://192.168.120.141:9092
#配置ZooKeeper集群的地址和端口,以逗号分开。
zookeeper.connect=192.168.31.100:2181,192.168.31.101:2181,192.168.31.102:2181
第五步:在/opt/kafka_2.13-2.6.0目录下创建/data目录;
cd /opt/kafka_2.13-2.6.0
mkdir /data
第六步:配置环境变量;
vi /etc/profile
#向/etc/profile添加内容如下:
export KAFKA_HOME=/opt/kafka_2.13-2.6.0
export PATH=:$PATH:${KAFKA_HOME}
source /etc/profile
第七步:在另外两台虚拟机上重复上述操作,注意:第四步需要配置不同的broker.id,且advertised.listeners设置成本机的IP。
启动Kafka集群
第一步:启动ZooKeeper集群,同样参考这篇博客:ZooKeeper集群搭建详细手册;
第二步:在每台服务器上,进入/opt/kafka_2.13-2.6.0/bin目录,启动Kafka;
cd /opt/kafka_2.13-2.6.0/bin
./kafka-server-start.sh -daemon ../config/server.properties
第三步:通过ZooKeeper来验证Kafka集群是否启动成功;
#进入我的ZooKeeper集群中的其中一个ZooKeeper
cd /opt/apache-zookeeper-3.6.2-bin/bin
#启动客户端
./zkCli.sh -server 127.0.0.1:2181
#查看有哪些Kafka已经启动了,这里查看的是Kafka的broker.id。
ls /brokers/ids
#查看单个Kafka的状态,我这里查看broker.id=0的那个Kafka的状态。
get /brokers/ids/0
关闭Kafka集群
第一步:在每台服务器上,进入/opt/kafka_2.13-2.6.0/bin目录,关闭Kafka;
cd /opt/kafka_2.13-2.6.0/bin
./kafka-server-stop.sh -daemon ../config/server.properties
第二步:通过ZooKeeper来验证Kafka集群是否关闭成功。Kafka关闭可能会慢一点,可以等待一会儿再查看状态(略)。
还没有评论,来说两句吧...