导读
kafka集群安装,从本质上来讲,由一套多节点zookeeper集群和一套多节点Kafka集群组成组成,
如图:
kafka集群共依赖三部分内容:jdk,zookeeper,kafka。zookeeper集群是难点,需要特别注意。
集群环境介绍
主机信息
软件版本信息
开始集群部署
基础信息配置
修改host信息
配置host内容如下
192.168.6.84 kafka-1
192.168.6.85 kafka-2
192.168.6.86 kafka-3
关闭防火墙,禁止开机启动
关闭防火墙:
systemctl stop firewalld.service
禁止开机自启:
systemctl disable firewalld.service
安装jdk
创建统一的目录层级:
三个目录统一在/opt/apps路径下:
jdk安装非常简单,这里不做介绍,如果不熟悉的可以网上查看相关资料。
jdk安装成功的标识为,执行java -verion 可以显示相关信息:
安装zookeeper
安装形式有多种,这里使用离线包的形式。
将安装包上传到/opt/apps/zk路径下,并执行解压命令:
tar -xvf zookeeper-3.4.14.tar.gz
刚解压完的zk中conf 文件夹内容如下:
第一步,需要将zoo_sample.cfg 复制一份重命名为zoo.cfg
执行命令:cp zoo_sample.cfg zoo.cfg
修改zoo.cfg内容。修改完zoo.cfg内容为:
将zoo.cfg 拷贝到其他主机:
scp zoo.cfg root@192.168.6.85:/opt/apps/zk/zookeeper-3.4.14/conf/
scp zoo.cfg root@192.168.6.86:/opt/apps/zk/zookeeper-3.4.14/conf/
在集群中所有节点的zoo.cfg内容是相同的。
zoo.cfg属性介绍:
tickTime:属性作为是对应session保存时间为这个时间的2倍,单位毫秒
initLimit :参数为:Follower节点启动的时候,会到leader节点同步数据,领导者端只允许在这个设置的时间内同步完数据,否则不任务加入zk队列中.
syncLimit:为领导者定期去检查时间其下节点是否状态还正常.
另外:还需要配置dataLogDir 参数,在生产环境下一定要配置.是记录事物日志的.这个会单独挂载到一个磁盘上.
dataDir:为对应主机的数据文件夹.
因为有三台zk,所以有三个server
server.1 server.2 server.3 其中数据 1 2 3 就是对应节点的id号,因为这个id值作为标识,分别在对应文件夹中记录对应id的内容.
这里需要特别注意:
在集群环境下,需要在对应的文件夹下建立一个myid 文件(touch myid)
里面内容分别为server.Id的值,
比如,zk文件夹下,myid 内容为 1 依次类推,分别为 2 3
上述:server 命名中 ip:port1:port2
其中第一个端口号为zk 中各服务通信的端口号,是leader与Follower之间通信的端口号, 第二个端口号为zk与zk之间通信的端口号.
比如第1个端口:主从之间的数据同步
比如第二个端口,在zk与zk之间需要投票,其中第二个端口是这个作用,这个是zk与zk间的通信.
启动前先创建日志存储路径(三台主机同步操作):
mkdir –p /opt/data/zk/logs
配置完,启动对应zk。
执行后台启动命令:
nohup sh zkServer.sh start >> /opt/data/zk/logs/log.log 2>&1 &
并查看日志:
如下信息表示启动完成:
三台依次启动后,查看对应的状态:
再bin路径下:
Sh zkServer.sh status
84主机:
85 主机:
86 主机:
由此可见,85主机为zk集群的leader
也可通过ps -ef|grep zookeeper 命令查看zk进程是否正常:
在启动后,对应bin文件夹下,会默认生成zk的启动日志:
Zk 集群安装完成。
Kafka集群
多节点安装kafka比安装多节点zookeeper要简单得多,只需要创建多份配置文件,然后指定他们启动kafka服务即可。
首先创建日志存储路径(三个节点同时操作):
mkdir –p /opt/logs/kafka
kafka 节点集群搭建只需要修改server.properties即可。
三台主机的配置详情为:
84主机的server.properties为:
85主机的server.properties为:
86主机的server.properties为:
上面属性中除了break.id 必须唯一外,其他配置相同。
server.properties 配置完成后可启动kafka服务。
后台启动命令:
sh ./bin/kafka-server-start.sh -daemon ./config/server.properties
查看启动日志:
启动命令执行后,kafka会自动在解压目录下新建logs目录存放相关日志
执行完查看启动日志:
logs 目录下(启动日志没有放到刚才server.properties配置的log.dirs r中,就是再kafka解压目录的logs里面)确认kafka启动成功:
tail -500f server.log
也可使用jsp来确认kafka启动是否成功:
其他主机依次按照上述操作启动。
至此kafka集群搭建完成。
验证集群
随便找一台主机创建topic
sh ./bin/kafka-topics.sh --zookeeper kafka-1:2181,kafka-2:2181,kafka-3:2181 --describe --topic test-container-topic1
然后执行命令:
//查看集群中topic总集:
sh ./bin/kafka-topics.sh --zookeeper kafka-1:2181,kafka-2:2181,kafka-3:2181 –list
//查看topic名为 topic test-container-topic1 的详细信息
sh ./bin/kafka-topics.sh --zookeeper kafka-1:2181,kafka-2:2181,kafka-3:2181 --describe --topic test-container-topic1
如果上述命令正常返回,那么,集群搭建成功。
以上,本次全部内容。