1. 主机与服务规划
1.1 主机规划
主机 | IP | HostName | CPU | MEMERY | USER | PWD |
---|---|---|---|---|---|---|
hadoop181 | 192.168.207.181 | hadoop181 | 4 CORE | 8G | hadoop | hadoop |
hadoop182 | 192.168.207.182 | hadoop182 | 4 CORE | 8G | hadoop | hadoop |
hadoop183 | 192.168.207.183 | hadoop183 | 4 CORE | 8G | hadoop | hadoop |
注意: 集群之间需要配置免密登录
1.2 服务规划
服务 | hadoop181 | hadoop182 | hadoop183 |
---|---|---|---|
ZOOKEEPER | √ | √ | √ |
KAFKA | √ | √ | √ |
2. 资源准备
(1)下载安装包
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.12-2.6.0.tgz
(2) 上传到服务器
3. 具体安装步骤
3.1 解压并重命名
# 解压缩
[hadoop@hadoop181 ~]$ tar -zxvf kafka_2.12-2.6.0.tgz
# 改个命名
[hadoop@hadoop181 ~]$ mv kafka_2.12-2.6.0 apache-kafka
3.2 创建一个logs目录
[hadoop@hadoop181 ~]$ cd apache-kafka
[hadoop@hadoop181 apache-kafka]$ mkdir logs
3.3 修改 server.properties配置文件
(1) 修改命令
[hadoop@hadoop181 apache-kafka]$ cd config/
[hadoop@hadoop181 config]$ vim server.properties
(2)修改内容
# 全局唯一编号,不能重复我配置的是 hadoop181-》1,hadoop182-》2,hadoop183-》3
broker.id=1
delete.topic.enable=true
log.dirs=/home/hadoop/apache-kafka/logs
zookeeper.connect=hadoop181:2181,hadoop182:2181,hadoop183:2181
3.4 配置KAFKA 的环境变量
# KAFKA HOME
export KAFKA_HOME=/home/hadoop/apache-kafka
export PATH=$PATH:$KAFKA_HOME/bin
3.5 文件分发
(1) 分发软件目录
[hadoop@hadoop181 ~]$ xsync apache-kafka/
(2)分发环境变量文件
# 分发环境变量
[hadoop@hadoop181 ~]$ xsync .bashrc
# 使环境变量生效
[hadoop@hadoop181 ~]$ source .bashrc
[hadoop@hadoop182 ~]$ source .bashrc
[hadoop@hadoop183 ~]$ source .bashrc
3.6 分别修改hadoop182和hadoop183 的 broker.id
[hadoop@hadoop182 ~]$ vim /home/hadoop/apache-kafka/config/server.properties
broker.id=1
[hadoop@hadoop183 ~]$ vim /home/hadoop/apache-kafka/config/server.properties
broker.id=3
4. 启停集群
4.1 启动集群
kafka 启动之前需要先启动zookeeper集群
(1) 启动hadoop181
[hadoop@hadoop181 ~]$ kafka-server-start.sh -daemon /home/hadoop/apache-kafka/config/server.properties
(2) 启动hadoop182
[hadoop@hadoop182 ~]$ kafka-server-start.sh -daemon /home/hadoop/apache-kafka/config/server.properties
(3) 启动hadoop183
[hadoop@hadoop183 ~]$ kafka-server-start.sh -daemon /home/hadoop/apache-kafka/config/server.properties
(4)测试创建一个topic
# 集群上随便选择一个节点创建
[hadoop@hadoop183 ~]$ kafka-topics.sh --create --topic first --replication-factor 3 --partitions 3 --zookeeper hadoop181:2181,hadoop182:2181,hadoop183:2181
(5)查看测试结果
# 在另一个节点查看
[hadoop@hadoop181 ~]$ kafka-topics.sh --list --zookeeper hadoop181:2181,hadoop182:2181,hadoop183:2181
first
[hadoop@hadoop181 logs]$
在这里插入代码片
4.2 停止集群
(1) 停止hadoop181
[hadoop@hadoop181 ~]$ kafka-server-stop.sh
(2) 停止hadoop182
[hadoop@hadoop182 ~]$ kafka-server-stop.sh
(3) 停止hadoop183
[hadoop@hadoop183 ~]$ kafka-server-stop.sh
4.3 群起脚本
每次启停都需要很复杂, 所以整理了集群启动小脚本参见我另一份笔记 https://blog.csdn.net/SnowXu01/article/details/108793119