Linux下搭建kafka和zk伪分布式集群【附详细步骤】
前言Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起。同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。kafka搭载zk,通常有3种模式:单机模式,只安装部署一个server。伪分布式集群模式,一台机器分别安装部署3个zk和ka...
前言
Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起。同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。kafka搭载zk,通常有3种模式:
- 单机模式,只安装部署一个server。
- 伪分布式集群模式,一台机器分别安装部署3个zk和kafka节点server。
- 分布式集群模式,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
如图所示:
注:输入wq! ,保存关闭后:再重新加载下刚刚编辑的profile文件。
命令:source profile (就在当前路径下加载)
3、接着检测是否安装成功,Java –version如下:
如此,则安装并配置成功。
二、安装zookeeper伪集群
1、官方下载zookeeper安装包
2、创建集群工作目录并配置
- 先建立三个server文件夹用来解压zookeeper文件(3个server分别:server1、server2、server3)
- 分别解压文件到3个server文件夹下后,再在相应server文件夹下建立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即可。另单机模式就不赘述了。
更多推荐
所有评论(0)