集群规划:
用三台虚拟机搭建,
ip | 服务 |
---|---|
192.168.10.100 | zk,kafka |
192.168.10.101 | zk,kafka |
192.168.10.102 | zk,kafka |
kafka下载地址: http://kafka.apache.org/downloads.html
一、zookeeper安装
解压zookeeper /app/soft/zookeeper-3.7.1。
在解压目录下 mkdir data。
在data目录中 vim myid,添加id,比如1,每台服务上都要做ID配置且id值不能一样。
/app/soft/zookeeper-3.7.1/conf目录下mv zoo_sample.cfg zoo.cfg。添加配置。
dataDir=/app/soft/zookeeper-3.7.1/data #######################cluster##################### server.1=test100:2888:3888 server.2=test101:2888:3888 server.3=test102:2888:3888
每个服务上都要做配置。
参数解读:
server.A=B:C:D。
A是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
B是这个服务器的地址;
C是这个服务器Follower与集群中的Leader服务器交换信息的端口;
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
bin/zkServer.sh start启动集群。
二、kafka集群安装
解压kafka安装包 /app/soft/kafka_2.12-3.1.1
在解压目录下 mkdir logs
到config下修改配置文件 vi server.properties
#broker的全局唯一编号,不能重复 broker.id=0 #删除topic功能使能 delete.topic.enable=true #kafka运行日志存放的路径 log.dirs=/app/soft/kafka_2.12-3.1.1/data/kafka-logs #配置连接Zookeeper集群地址 zookeeper.connect=test100:2181,test101:2181,test102:2181/kafka
vi /etc/profile.d/my_env.sh中添加环境变量
#KAFKA_HOME export KAFKA_HOME=/app/soft/kafka_2.12-3.1.1 export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile.d/my_env.sh
bin/kafka-server-start.sh -daemon /app/soft/kafka_2.12-3.1.1/config/server.properties 启动集群。