Kafka-2、伪集群安装-测试环境搭建

一、Java安装
不论安装Zookeeper还是Kafka都需要提前安装好Java并配置好Java环境变量。
Kafka服务端的代码是由Scala语言编写的,新版本的客户端是由Java语言编写的,两种语言都会编译成class文件,都属于JVM语系。
建议安装java8以上版本,参考安装教程
验证Java安装,使用java -version命令。
在这里插入图片描述

二、Zookeeper安装
Zookeeper是安装Kafka集群必要的组件。Zookeeper中保存Kafka的元数据信息。使用单节点Kafka时可以直接使用自带的Zookeeper,但最好自己搭建Zookeeper集群。查看Kafka自带Zookeeper版本,这里我们也安装相同的版本。在这里插入图片描述
1、下载Zookeeper压缩包
下载对应版本的压缩包。
官网下载地址:https://zookeeper.apache.org/releases.html#download

2、上传到服务器并解压

tar -zxvf zookeeper-3.4.14.tar.gz

3、单节点配置
1)、创建data目录
创建dataDir目录/home/user/zk

mkdir -p /home/user/zk

2)、修改zoo.cfg文件
配置文件重命名

mv zookeeper-3.4.14/conf/zoo_sample.cfg zookeeper-3.4.14/conf/zoo.cfg 

修改配置文件,dataDir参数为上面步骤中创建的目录

vi zookeeper-3.4.14/conf/zoo.cfg

dataDir=/home/user/zk

3)、启动服务
使用脚本启动服务,出现STARTED输出时,启动成功。

zookeeper-3.4.14/bin/zkServer.sh start

在这里插入图片描述

4、集群配置
Zookeeper集群只需要大多数节点可用,整个集群便可用。所以最好使用2n+1个服务器进行部署,最小的节点数为3。
这我们安装伪集群,假设Java环境已经安装好,并且已经下载解压Zookeeper压缩文件。
1)、创建dataDir目录,并创建myid文件
这里安装的伪集群,需要创建三个目录和三个myid文件,在真实集群下每个服务器中创建自己的目录和myid文件即可。

创建三个节点的dataDir目录

mkdir -p /home/user/zk1
mkdir -p /home/user/zk2
mkdir -p /home/user/zk3

在三个目录中分别创建myid文件

echo "1" > /home/user/zk1/myid
echo "2" > /home/user/zk2/myid
echo "3" > /home/user/zk3/myid

2)、修改配置文件
修改hosts,添加:

127.0.0.1 zk1 zk2 zk3

创建三个配置文件,这里使用伪集群,需要指定不同路径的dataDir和端口。
zoo1.cfg 修改如下:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/user/zk1
clientPort=2181
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

zoo2.cfg 修改如下:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/user/zk2
clientPort=2182
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

zoo3.cfg 修改如下:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/user/zk3
clientPort=2183
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

tickTime:Zookeeper最小时间单位,用户心跳和超时时间等,单位为毫秒,一般默认设置为2秒。
initLimit:指定follower节点初始连接leader节点进行最大的tick次数。如果设置为5,则follower需要在5tickTime时间内连接上leader,否则被认为超时。
syncLimit:设定follower节点与leader节点镜像同步的最大时间,如果设置为2,则为2
tickTime。
dataDir:Zookeeper在内存中保存系统快照并定期写入该目录中,需要注意该路径磁盘占用情况。
clientPort:Zookeeper服务端口,如果搭建伪集群需要指定不同端口,防止端口冲突,默认为2181。
server.X=host:port1:port2:X为一个全局唯一整数,与myid相对应,一般设置为1~255之间的整数;port1端口用于follower节点连接leader节点;port2端口用户leader选举。

3)、启动
启动三个节点。这里为伪集群,需要指定不同配置文件分别启动。

bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg

在这里插入图片描述
查看三个节点的状态,zk3为leader,zk1和zk2为follower。

bin/zkServer.sh status conf/zoo1.cfg
bin/zkServer.sh status conf/zoo2.cfg
bin/zkServer.sh status conf/zoo3.cfg

在这里插入图片描述

三、Kafka安装
1、修改系统配置
添加hosts:

127.0.0.1   zk1 zk2 zk3 kafka1 kafka2 kafka3

创建log目录:

mkdir -p /tmp/kafka-logs/kafka1
mkdir -p /tmp/kafka-logs/kafka2
mkdir -p /tmp/kafka-logs/kafka3

2、修改配置文件
创建三个配置文件。
server1.properties修改如下配置:

broker.id=0
listeners=PLAINTEXT://kafka1:9092
log.dirs=/tmp/kafka-logs/kafka1
zookeeper.connect=zk1:2181,zk2:2182,zk3:2183

server2.properties修改如下配置:

broker.id=1
listeners=PLAINTEXT://kafka2:9093
log.dirs=/tmp/kafka-logs/kafka2
zookeeper.connect=zk1:2181,zk2:2182,zk3:2183

server3.properties修改如下配置:

broker.id=2
listeners=PLAINTEXT://kafka3:9094
log.dirs=/tmp/kafka-logs/kafka3
zookeeper.connect=zk1:2181,zk2:2182,zk3:2183

3、启动
分别启动三个节点。

bin/kafka-server-start.sh -daemon config/server1.properties
bin/kafka-server-start.sh -daemon config/server2.properties
bin/kafka-server-start.sh -daemon config/server3.properties

启动时没报错,并且运行jps命令,可以看到三个kafka进程,启动成功。

四、测试

1、测试topic
创建topic,有3个分区,每个分区有三个副本。

bin/kafka-topics.sh --zookeeper zk1:2181,zk2:2182,zk3:2183 --create --topic test-topic --partitions 3 --replication-factor 3

在这里插入图片描述

查看topic信息。

bin/kafka-topics.sh --zookeeper zk1:2181,zk2:2182,zk3:2183 --describe topic test-topic

在这里插入图片描述

2、测试收发消息
打开一个producer。

bin/kafka-console-producer.sh --broker-list kafka1:9092,kafka2:9093,kafka3:9094 --topic test-topic

新建终端,打开一个consumer。

bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9093,kafka3:9094 --topic test-topic --from-beginning

producer中发送任意消息。
在这里插入图片描述
在consumer中能接收到。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值