Kafka 是用于日志处理的分布式消息队列,同时支持离线和在线日志处理。kafka 对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka 集群有多个kafka 实例组成,每个实例(server)称为broker。无论是kafka集群,还是producer和consumer 都依赖于zookeeper 来保证系统可用性,为集群保存一些meta 信息。
若有任何疑问,请详细阅读(http://kafka.apache.org/)
2.1、软件环境
本文将介绍 Redhat7.3开源搭建Kafka集群,软件版本如下:
NO. |
软件名称 |
版本号 |
1. |
操作系统 |
Redhat7.3 64位 |
2. |
JDK |
8u131-linux-x64 |
3. |
Zookeeper |
3.4.10 |
4. |
Kafka |
kafka_2.11-2.1.0 |
2.2、配置规划
本次安装共 3 台服务器,服务器配置及用途如下:
NO. |
机器名称 |
IP |
配置 |
1. |
dlcj02 |
192.168.1.142 |
48核/32G/5.5T |
2. |
dlcj03 |
192.168.1.143 |
48核/32G/5.5T |
3. |
dlcj04 |
192.168.1.144 |
48核/32G/5.5T |
2.3 软件存放目录(所有节点)
为方便软件的集中管理及减少对根目录空间的占用,在此划分统一空间对软件存放地方进行集中管理。
在142节点创建kafka、zookeeper文件夹(根据读者实际情况建立文件夹即可),如下图所示:
java:存放jdk1.8安装文件
kafka:存放kafka安装文件
zookeeper:存放zookeeper安装文件
2.4、设置映射关系(所有节点)
Redhat7修改指令为:vim /etc/hosts.此处将所有节点都加入进去。此处界面如下所示:
192.168.1.144 dlcj04
192.168.1.143 dlcj03
192.168.1.142 dlcj02
2.5、设置防火墙(所有节点)
关闭防火墙
即时生效,重启后会复原:systemctl stop firewalld
永久生效:systemctl disable firewalld
2.6、配置免密码登录 SSH(所有节点)
a.在root用户下输入ssh-keygen -t rsa 一路回车
b.秘钥生成后在~/.ssh/目录下,有两个文件id_rsa(私钥)和id_rsa.pub(公钥),将公钥复制到authorized_keys并赋予authorized_keys600权限(若没有该文件可以直接创建)。
c. 同理在dlcj03和dlcj04节点上生成秘钥,然后将秘钥复制到master节点上的authoized_keys。这个在复制时,直接使用cat命令将秘钥打印出来,然后直接将其复制到master节点上的authoized_keys即可。
d. 将dlcj02节点上的authoized_keys远程传输到dlcj03和dlcj04的~/.ssh/目录下。
e.检查是否免密登录(第一次登录会有提示)。
2.7、关闭 SELINUX(所有节点)
关闭selinux:
# setenforce 0 (临时生效)
# vim /etc/selinux/config (永久生效)
: SELINUX=disabled
2.8、安装 oracle JDK1.8 (所有节点)
将jdk-8u131-linux-x64.tar.gz包拷贝到linux系统中,并将其解压到指定目录下。然后在/etc/profile目录下添加(在proifile内容最后添加即可):
export JAVA_HOME= /usr/lcoal/java/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar.
最后,执行命令source /etc/profile使配置文件生效,并查看java版本信息。
tar -zxvf zookeeper-3.4.10.tar.gz -C /ies/zookeeper/
进入zookeeper的conf目录下,将其zoo_sample.cfg重新复制为一份并命名为zoo.cfg,然后修改并添加以下内容:
注意:dataDir 和 dataLogDir 需要在启动前创建完成
clientPort 为 zookeeper的服务端口
在dataDir 路径下创建一个文件名为 myid 的文件,文件内容为该 zk 节点的编号。
本例中142节点下的myid为0、143为1、 144为2
进入zookeeper安装目录下的bin文件夹执行:
各个节点执行: ./zkServer.sh start
进入zookeeper安装目录下的bin文件夹执行:
各个节点执行: ./zkServer.sh status
看到有如下进程则表明zookeeper安装成功。
tar -zxvf kafka_2.11-2.1.0.tgz -C /ies/kafka/
进入kafka安装目录下的config,编辑server.properties,修改并添加如下内容:
进入到kafka安装目录下,采用后台启动的方式进行启动,命令如下:
bin/kafka-server-start.sh -daemon config/server.properties
注意:由于kafka启动是依赖于zookeeper服务的,故在启动kafka之前一定保证zookeeper正常启动。
当后台启动kafka后,可采用如下命令进行查看kafka是否正常启动:
1、jps命令
2、netstat命令
至此,整个kafka集群搭建完毕,如有疑问,请咨询博主!