CentOs7 部署Kafka集群

CentOs7 部署Kafka集群

前言

三台虚拟机centos7部署kafka集群

环境服务器节点
jdk1.8.0_262192.168.44.10master
zookeeper使用内置3.4.10192.168.44.11node1
kafka2.11-0.11192.168.44.12node2

一、jar包下载

网址连接
[linl]

二、集群部署

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版权协议,转载请附上原文出处链接和本声明。