从0学习Kafka--集群部署
Kafka集群搭建#
一、搭建环境#
系统&软件版本#
系统:CentOS Linux release 7.7.1908 (Core)
JDK:java version "1.8.0_171"
zookeeper: zookeeper-3.4.14.tar.gz
kafka: kafka_2.12-2.4.1.tgz
机器规划#
IP地址 | 主机名 | 安装软件 |
---|---|---|
192.168.137.102 | mini2 | jdk、zookeeper、kafka |
192.168.137.103 | mini3 | jdk、zookeeper、kafka |
192.168.137.104 | mini4 | jdk、zookeeper、kafka |
说明#
- 机器均关闭防火墙
- 网络互通
- hosts文件中添加主机名映射
- jdk1.8 环境已具备
- 安装路径:
/usr/local/hdp
- 系统用户:
bigdata
二、zookeeper集群#
2.1 软件下载#
2.2 解压安装#
[bigdata@mini2 hdp]$ tar -xzvf zookeeper-3.4.14.tar.gz
2.3 修改配置文件#
[bigdata@mini2 hdp]$ cd zookeeper-3.4.14/conf
[bigdata@mini2 conf]$ cp zoo_sample.cfg zoo.cfg
[bigdata@mini2 conf]$ vim zoo.cfg
本次使用的配置信息:
initLimit=10
syncLimit=5
dataDir=/data/zoo # data文件
clientPort=2181
#集群部署,server后面的数字就是自己机器的myid,这边取的是IP地址最后一段
server.102=mini2:2888:3888
server.103=mini3:2888:3888
server.104=mini4:2888:3888
2.4 创建服务器标识#
在zookeeper的数据文件夹中创建myid
文件,并写入机器标识(zoo.cfg中server.机器标识)
[bigdata@mini2 ~]$ cd /data/zoo
[bigdata@mini2 zoo]$ echo 102 > myid
2.5 软件复制#
将 zookeeper-3.4.14
远程复制到另几个机器mini3
、mini4
:
[bigdata@mini2 hdp]$ scp -r zookeeper-3.4.14 bigdata@mini3:/usr/local/hdp
[bigdata@mini2 hdp]$ scp -r zookeeper-3.4.14 bigdata@mini4:/usr/local/hdp
备注:mini3、mini4 上对应的myid需要修改成对应的机器标识:
- mini3
[bigdata@mini2 ~]$ cd /data/zoo
[bigdata@mini2 zoo]$ echo 103 > myid
- mini4
[bigdata@mini2 ~]$ cd /data/zoo
[bigdata@mini2 zoo]$ echo 104 > myid
2.6 启动zookeeper#
分别在三个机器上启动zookeeper:
[bigdata@mini2 ~]$ cd /usr/local/hdp/zookeeper-3.4.14
[bigdata@mini2 zookeeper-3.4.14]$ bin/zkServer.sh start
验证集群状态:
[bigdata@mini2 zookeeper-3.4.14]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/hdp/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
[bigdata@mini3 zookeeper-3.4.14]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/hdp/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader
[bigdata@mini4 zookeeper-3.4.14]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/hdp/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
三、Kafka集群安装#
3.1 软件下载#
3.2 解压安装#
[bigdata@mini2 hdp]$ tar -xzvf kafka_2.12-2.4.1.tgz
3.3 修改配置文件#
[bigdata@mini2 hdp]$ cd kafka_2.12-2.4.1/config/
[bigdata@mini2 config]$ vim server.properties
本次使用的配置信息:
broker.id=102 # 服务器标识
listeners=PLAINTEXT://mini2:9092
advertised.listeners=PLAINTEXT://mini2:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka # 日志文件目录
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
#log.flush.interval.messages=10000
#log.flush.interval.ms=1000
log.retention.hours=168
#log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=mini2:2181,mini3:2181,mini4:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
3.4 软件复制#
将 kafka_2.12-2.4.1
远程复制到另几个机器mini3
、mini4
:
[bigdata@mini2 hdp]$ scp -r kafka_2.12-2.4.1 bigdata@mini3:/usr/local/hdp
[bigdata@mini2 hdp]$ scp -r kafka_2.12-2.4.1 bigdata@mini4:/usr/local/hdp
备注:mini3、mini4 上对应的server.properties
需要修改以下信息:
- mini3
[bigdata@mini2 config]$ vim server.properties
broker.id=103 # 服务器标识
listeners=PLAINTEXT://mini3:9092
advertised.listeners=PLAINTEXT://mini3:9092
- mini4
[bigdata@mini2 config]$ vim server.properties
broker.id=104 # 服务器标识
listeners=PLAINTEXT://mini4:9092
advertised.listeners=PLAINTEXT://mini4:9092
3.5 启动kafka#
[bigdata@mini2 kafka_2.12-2.4.1]$ bin/kafka-server-start.sh -daemon config/server.properties
至此,Kafka集群已搭建完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通