前言

Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起。同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。kafka搭载zk,通常有3种模式:

  1. 单机模式,只安装部署一个server。
  2. 伪分布式集群模式,一台机器分别安装部署3个zk和kafka节点server。
  3. 分布式集群模式,3台以上机器(以3台为例),3台机器上分别安装部署3个zk和kafka节点server。

本文仅以第二种:伪分布式集群模式讲解,安装部署为分布式集群的详细步骤。

一、环境和版本:

  • linux
  • Jdk 1.8
  • Zookeeper-3.4.10
  • Kafka-2.11

1、下载并安装jdk1.8 ,此项略。

2、配置jdk环境变量

与windows环境下配置环境变量不同,Linux下非常简单:在profile中进行修改配置,首先的etc的目录下找到该文件,右击编辑,在文件的最末尾住添加如下的文本:

Export JAVA_HOME=/usr/local/java/jdk1.8.0_11
Export JRE_HOME=/usr/local/java/jdk1.8.0_11/jre
Export PATH=$PATH:/usr/local/java/jdk1.8.0_11/bin
Export CLASSPATH=./:/usr/local/java/jdk1.8.0_11/lib:/usr/local/java/jdk1.8.0_11/jre/lib

如图所示:

profile中配置

注:输入wq!  ,保存关闭后:再重新加载下刚刚编辑的profile文件。

命令:source profile (就在当前路径下加载)

3、接着检测是否安装成功,Java –version如下:

Linux下检测jdk是否安装成功

如此,则安装并配置成功。

 

二、安装zookeeper伪集群

1、官方下载zookeeper安装包

2、创建集群工作目录并配置

  • 先建立三个server文件夹用来解压zookeeper文件(3个server分别:server1、server2、server3)
3个文件夹

 

  • 分别解压文件到3个server文件夹下后,再在相应server文件夹下建立data和dataLog文件夹用来存放各服务器的日志和数据信息等。
data和dataLog文件夹

 

  • 修改配置信息

把/home/zookeeper/server*/zookeeper-3.4.10-alpha/conf/ 文件夹下的zoo_sample.cfg文件重命名为zoo.cfg。

 分别在server1/conf/、server2/conf/、server3/conf/目录下的zoo.cfg文件。

主要修改如下图中信息:

详细配置信息

先分别在3个server的data文件夹下创建myid文件(不是文件夹),用命令: touch myid创建。

 然后分别在server1 、server2、server3的myid文件中编辑分别输入:1、2、3。代表各个服务器的编号。(是分别输入1 2 3)

需要注意:

1.这一点很重要,以为设置好了之前etc/pforile文件中的java_home环境变量就万事大吉了,结果在启动zookeeper的server时会报错:
Error: JAVA_HOME is not set and java could not be found in PATH.
2.初一看以为是java_home环境变量没设置好,但之前检测过java –version本地jdk是安装并配置成功了的。所以排除这个原因,经过网上查找资料发现:在/home/zookeeper/server*/zookeeper-3.5.2-alpha/bin 下的zkEnv.sh文件中存在报错内容,所以手动在这个错误内容前面添加java_home配置(可能系统会找不到profile文件中的java_home配置)

如出现上述报错,则需配置:

手动添加

启动服务

  • 接下来,分别启动zookeeper(一下简称zk)3个server:分别到/home/zookeeper/server*/zookeeper-3.4.10/bin 3个server的这个目录下,命令  ./ zkServer.sh   start  启动server

启动成功

出现如上截图信息,表明启动成功。3个server同样操作启动服务。

  • 客户端连接和状态检查
客户端连接

bin/zkCli.sh  -server 127.0.0.1:2181

查看服务启动状态

zkServer.sh status

停止服务

命令  ./ zkServer.sh   stop 停止server

 

三、kafka安装部署

1、解压和配置

1.  下载好压缩包kafka_2.11-0.10.2.1.tgz,解压到目录:
/home/kafka/server/  下面。
2. 到解压后的kafka_2.11-0.10.2.1目录下,/config下有个 server.properties 复制3份:分别作为3个server的配置文件server1.properties  server2.properties  server3.properties
3.  修改server1.properties (3个都要,可先修改再复制)文件的配置内容,主要有:

按照图中信息修改后(没有的要添加),server.properties文件就修改完毕了。

注意:这里的127.0.0.1建议修改为各服务器IP地址(如:17*.20.4.*0开发机)

2、注意事项

本文是讲述安装部署zk和kafka的伪分布式集群,kafka集群的启动是在zookeeper的基础上启动并运行的。因此,上述配置的端口(2181/2182/2183)在zookeeper中3个server中的zoo.cfg的clientPort端口分别对应一致。

3、启动服务

1.执行命令,启动kafka伪集群
2.到 ../bin 目录下执行命令 ./kafka-server-start.sh ../config/server1.properties
   3个server都要执行  分别 ./kafka-server-start.sh ../config/server2.propertie
                         ./kafka-server-start.sh ../config/server3.propertie
3.如下:

一直拉到最后,看到started字样,则kafka连接zookeeper并启动成功。

到此:kafka伪集群搭建成功

4、停止服务

../bin 目录下执行命令 ./ kafka-server-stop.sh ../config/server1.properties
            还有简单方法,直接在运行的界面随便输入停止服务。

 

至此:Linux环境下,搭建kafka+zk伪分布式集群服务完毕。这种模式一般为我们开发和测试环境所需,用来开发测试程序。如需要搭建分布式集群服务(正式环境上),安装部署步骤基本一样,只是分别在3台机器上安装部署kafka和zk即可。另单机模式就不赘述了。

 

同名原创公众号: 程序大视界

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐