Kafka是一个由Apache软件基金会开发的开源流处理平台,是一个由Scala和Java编写的高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
Kafka集群依赖于Zookeeper进行协调,注册在同一个Zookeeper集群中的各个Kafka节点属于同一个Kafka集群,Kafka通过brokerId来区分集群中的不同节点。
分别在192.168.1.100、192.168.1.101和192.168.1.102三台虚拟机安装Kafka,搭建Kafka集群。
在192.168.1.100、192.168.1.101和192.168.1.102三台虚拟机安装Zookeeper,搭建Zookeeper集群,视频教程:https://www.bilibili.com/video/BV1Ez421a7fP
a、下载:https://downloads.apache.org/kafka,这里下载kafka_2.12-3.7.0.tgz
b、连接:通过MobaXterm 远程连接192.168.1.100虚拟机;
c、上传:将kafka_2.12-3.7.0.tgz压缩文件上传至/opt目录;
d、解压:将Kafka压缩文件解压至/usr/local目录
[root@localhost ~]# tar -zxvf /opt/kafka_2.12-3.7.0.tgz -C /usr/local
e、删除:删除压缩文件
[root@localhost ~]# rm -f /opt/kafka_2.12-3.7.0.tgz
f、创建目录:
/usr/local/kafka_2.12-3.7.0根目录下创建logs文件夹
[root@localhost ~]# mkdir /usr/local/kafka_2.12-3.7.0/logs
g、节点拷贝:
[root@localhost ~]# scp -r /usr/local/kafka_2.12-3.7.0 root@192.168.1.101:/usr/local/kafka_2.12-3.7.0
[root@localhost ~]# scp -r /usr/local/kafka_2.12-3.7.0 root@192.168.1.102:/usr/local/kafka_2.12-3.7.0
注意:节点拷贝操作只在192.168.1.100节点执行。
h、修改配置:
各个Kafka节点修改/usr/local/kafka_2.12-3.7.0/config/server.properties文件,命令如下:
192.168.1.100节点:
[root@localhost ~]# tee /usr/local/kafka_2.12-3.7.0/config/server.properties <<-'EOF'
# 同一Kafka集群下broker.id必须不同
broker.id=1
advertised.listeners=PLAINTEXT://192.168.1.100:9092
log.dirs=/usr/local/kafka_2.12-3.7.0/logs
zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
EOF
192.168.1.101节点:
[root@localhost ~]# tee /usr/local/kafka_2.12-3.7.0/config/server.properties <<-'EOF'
# 同一Kafka集群下broker.id必须不同
broker.id=2
advertised.listeners=PLAINTEXT://192.168.1.101:9092
log.dirs=/usr/local/kafka_2.12-3.7.0/logs
zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
EOF
192.168.1.102节点:
[root@localhost ~]# tee /usr/local/kafka_2.12-3.7.0/config/server.properties <<-'EOF'
# 同一Kafka集群下broker.id必须不同
broker.id=3
advertised.listeners=PLAINTEXT://192.168.1.102:9092
log.dirs=/usr/local/kafka_2.12-3.7.0/logs
zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
EOF
i、环境变量
[root@localhost ~]# tee -a /etc/profile <<-'EOF'
export KAFKA_HOME=/usr/local/kafka_2.12-3.7.0
export PATH=$PATH:$KAFKA_HOME/bin
EOF
[root@localhost ~]# source /etc/profile
j、开放端口:
[root@localhost ~]# firewall-cmd --zone=public --add-port=9092/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
注意:每个Zookeeper所在节点都需要通过执行上面命令开放端口。
1、启动Zookeeper集群
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh
2、逐个启动Kafka节点
[root@localhost ~]# kafka-server-start.sh $KAFKA_HOME/config/server.properties