十年河东,十年河西,莫欺少年穷

学无止境,精益求精

卡夫卡优秀的消息队列,各大公司都在使用

1、准备三台虚拟机,分别为:192.168.182.128、192.168.182.129、192.168.182.130

2、下载kafka安装包,我使用的是3.0版本,​​https://kafka.apache.org/downloads​

linux 环境下,kafka_2.12-3.0.0 集群搭建_kafka

 3、讲kafka传入到三台liunx服务器,放在 /root/software/ 文件夹下

linux 环境下,kafka_2.12-3.0.0 集群搭建_服务器_02

 4、解压压缩包

tar -xzvf kafka_2.12-3.0.0.tgz

5、重命名解压缩生成的文件夹名称

mv kafka_2.12-3.0.0 kafka

6、在kafka文件夹中新建logs 目录备用 

[root@localhost software]# cd kafka
[root@localhost kafka]# mkdir logs

linux 环境下,kafka_2.12-3.0.0 集群搭建_服务器_03

 

 7、进入kafka 子文件夹config中,修改 server.properties 配置文件

[root@localhost kafka]# cd config
[root@localhost config]# ls
connect-console-sink.properties connect-file-sink.properties connect-mirror-maker.properties kraft server.properties zookeeper.properties
connect-console-source.properties connect-file-source.properties connect-standalone.properties log4j.properties tools-log4j.properties
connect-distributed.properties connect-log4j.properties consumer.properties producer.properties trogdor.conf
[root@localhost config]# vim server.properties

分别将 192.168.182.128 服务器中的 server.properties 文件 配置项 broker.id 设置为 0,192.168.182.129 服务器中的 server.properties 文件 配置项 broker.id 设置为 1,192.168.182.130 服务器中的 server.properties 文件 配置项 broker.id 设置为 2

linux 环境下,kafka_2.12-3.0.0 集群搭建_kafka集群搭建_04

log.dirs 三台服务器均设置为  /root/software/kafka/logs  【logs就是第6步建的文件夹】

linux 环境下,kafka_2.12-3.0.0 集群搭建_kafka集群搭建_05

zookeeper.connect 三台服务器均设置为 192.168.182.128:2181,192.168.182.129:2181,192.168.182.130:2181 【代表kafka集群】

linux 环境下,kafka_2.12-3.0.0 集群搭建_kafka集群搭建_06

 wq保存

 8、主机名解析(三台服务器均要执行)并关闭防火墙、Iptables 、selinux

vim /etc/hosts

在三台虚拟机的 hosts 文件中增加如下配置

192.168.182.128  broker0
192.168.182.129 broker1
192.168.182.130 broker2

关闭防火墙和Iptables 

查看防火墙状态

systemctl status firewalld

关闭防火墙

[root@localhost etc]# systemctl stop firewalld
[root@localhost etc]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

关闭iptables

[root@localhost ~]# systemctl stop iptables
[root@localhost ~]# systemctl disable iptables

禁用selinux ,这是个奇葩的服务,一定要坚决关掉

临时关闭selinux服务

setenforce [1|0]    --- 1表示临时开启Enforcing,0表示临时关闭Permissive
getenforce --- 关闭后确认
[root@server ~]# setenforce 0
[root@server ~]# getenforce
Permissive

永久关闭selinux服务 【推荐永久关闭】

修改/etc/selinux/config文件

linux 环境下,kafka_2.12-3.0.0 集群搭建_linux_07linux 环境下,kafka_2.12-3.0.0 集群搭建_linux_07

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced. --- 服务处于正常开启状态
# permissive - SELinux prints warnings instead of enforcing. --- 服务被临时关闭了
# disabled - No SELinux policy is loaded. --- 服务被永久关闭
SELINUX=enforcing

9、三台服务器下配置kafka环境变量

vi /etc/profile

增加如下内容

export KAFKA_HOME=/root/software/kafka
export PATH=$PATH:$KAFKA_HOME/bin

linux 环境下,kafka_2.12-3.0.0 集群搭建_kafka集群搭建_09

 

 刷新配置文件

source /etc/profile

检测环境变量是否配置成功

[root@localhost bin]# echo $KAFKA_HOME
/root/software/kafka

10、启动kafka

kafka集群启动前要启动zookeeper集群 

然后三台服务器上执行

[root@localhost config]# /root/software/kafka/bin/zookeeper-server-start.sh -daemon  /root/software/kafka/config/zookeeper.properties

 三台服务器启动kafka

[root@localhost config]# /root/software/kafka/bin/kafka-server-start.sh -daemon  /root/software/kafka/config/server.properties

11、安装Jps插件,验证Kafak是否启动成功

我这里是才有yum来安装jdk的,方法如下:

yum install -y java-1.8.0-openjdk.x86_64

 

然后配置环境变量:

echo 'export JAVA_HOME=/usr/lib/jvm/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/tools.jar' >> /etc/profile

重新加载配置

source /etc/profile

 

验证:

java -version

 

当我输入jps命令后,竟然报命令找不到?
错误原因:默认安装完只有运行环境,java安装目录下只有jre文件夹。

 

继续安装开发环境:

yum install java-1.8.0-openjdk-devel.x86_64

 

成功后再输入jps:

jps

linux 环境下,kafka_2.12-3.0.0 集群搭建_linux_10

 

 看到Kafka进程后,就证明咱们的KAFKA安装并启动成功了。

 

12、停止kafka时,和启动时正好相反,应先停止kafka,在停止zookeeper

停止kafka  【我使用的绝对路径】

/root/software/kafka/bin/kafka-server-stop.sh

停止zk

/root/software/kafka/bin/zookeeper-server-stop.sh

 13、安装telnet,ping 9092 端口,是否畅通

yum list telnet*  查看有哪些telnet命令

查看到之后用yum install telnet-server.x86_64进行安装telnet-server.x86_64

yum install telnet-server.x86_64

查看到之后用yum install telnet.x86_64进行安装

yum install telnet.x86_64

最后在去telnet即可

telnet smtp.qq.com 25

@天才卧龙的博客