CentOs7 部署Kafka集群
前言
三台虚拟机centos7部署kafka集群
环境 | 服务器 | 节点 |
---|---|---|
jdk1.8.0_262 | 192.168.44.10 | master |
zookeeper使用内置3.4.10 | 192.168.44.11 | node1 |
kafka2.11-0.11 | 192.168.44.12 | node2 |
一、jar包下载
二、集群部署
1.第一个节点
解压安装包
[root@master local]# tar -zxvf kafka_2.11-0.11.0.0.tgz
修改解压后的文件名称
[root@master local]# mv kafka_2.11-0.11.0.0 kafka
在/usr/local/kafka/目录下建立文件夹logs
[root@master kafka]# mkdir logs
修改配置文件
[root@master kafka]# vi config/server.properties
修改四处:
broker.id
delete.topic.enable
log.dirs
zookeeper.connect
#broker 的全局唯一编号,不能重复
broker.id=0
#删除 topic 功能使能
delete.topic.enable=true
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO 的现成数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka 运行日志存放的路径
log.dirs=/usr/local/kafka/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=master:2181,node1:2181,node2:2181
配置全局环境变量
[root@master config]# vi /etc/profile
添加home和path
#KAFKA_HOME
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
至此,第一个节点配置完成
2.其余节点
其余两台服务器配置方式相同,唯一需要注意的是:node1和node2的broker.id依次设置为2和3,保证与master不同
全部配置完成后,这个kafka集群就ok了
三、启动集群
1.首先要先启动zookeeper
内置的zookeeper,启动命令也在bin目录下
[root@master kafka]# ./bin/zookeeper-server-start.sh ./config/zookeeper.properties
三台服务器都启动zookeeper
2.启动kafka
三台服务器依次启动kafka
[root@master kafka]# ./bin/kafka-server-start.sh ./config/server.properties
启动效果如下
这样启动会占用线程,可以加-daemom
[root@master kafka]# ./bin/kafka-server-start.sh -daemon ./config/server.properties
jps命令看一下,kafka已经启动了,7543那个是zookeeper
3.测试一下
- 创建一个topic,注意replication-factor不能多于broker数目,这里就先用单节点试试
[root@master kafka]# ./bin/kafka-topics.sh --zookeeper master:2181 --create --replication-factor 1 --partitions 1 --topic first
可以查看下,topic创建成功
[root@master kafka]# ./bin/kafka-topics.sh --zookeeper master:2181 --list
__consumer_offsets
topic
- 开一个进程作为消息生产者
[root@master kafka]# ./bin/kafka-console-producer.sh --broker-list master:9092 --topic first
>hello
>kafka
- 另开一个进行作为消息消费者
[root@master kafka]# ./bin/kafka-console-consumer.sh --zookeeper master:2181 --topic first
hello
kafka
ok了
4.关闭服务
停止kafka和zookeeper服务
[root@master kafka]# ./bin/kafka-server-stop.sh
[root@master kafka]# ./bin/zookeeper-server-stop.sh
5.脚本控制群起、群停
每次集群启动zookeeper和kafka都要输n多遍命令,太麻烦,写一个脚本控制集群启动和停止服务。
待更新。。。
版权声明:本文为weixin_40579109原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。