kafka(2)-环境搭建
环境准备
kafka集群最低3个broker,所以准备了3台linux服务器(局域网内IP分别是192.168.130.106,192.168.130.107,192.168.130.108),每台安装1个zookeeper和1个kafka。
前期工作:当然是得把jdk环境配置正确。
第一步:安装zookeeper
zookeeper下载:https://zookeeper.apache.org/releases.html
为了统一管理软件,我都将软件放置/usr/local/software目录下(如果不熟悉linux命令操作,最好先去学习一下,方便之后操作,磨刀不误砍柴工)
解压文件到/usr/local/software目录下:
tar -zvxf zookeeper-3.4.14.tar.gz -C /usr/local/software
进入zookeeper目录
cd /usr/local/software/zookeeper-3.4.14
创建data、dataLog两个目录
mkdir data
mkdir dataLog
zookeeper目录结构
创建myid文件,并设置当前zookeeper节点id,注意:集群中的zookeeper节点id不能重复
touch data/myid
echo 1 > data/myid
复制一份配置文件出来单独修改
cp conf/zoo-sample.cfg conf/zoo.cfg
vim conf/zoo.cfg
在文件最后添加以下配置:
##data dir setting
dataDir=/usr/local/zookeeper-3.4.14/data
dataLogDir=/usr/local/zookeeper-3.4.14/dataLog
##cluster
server.1=192.168.130.106:2888:3888
server.2=192.168.130.107:2888:3888
server.3=192.168.130.108:2888:3888
说明
- cluster配置的格式:server.X=ip:port1:port2,X表示zookeeper节点id,port1是访问zookeeper集群follower和leader之间通信的端口,port2是重新选举leader的端口。
- 配置文件中还有个参数:clientPort,默认是2181,是客户端连接server的端口,可改可不改(端口被占用就改呗)。
完整zookeeper配置文件
注意图中红框处需注释
启动zookeeper之前还要开通防火墙的端口,否则会报连接不到其他zookeeper节点的错误,开通端口有两种方式:iptables和firewall-cmd
iptables方式开通端口
#开放端口:2181
iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
#将更改进行保存,否则重启服务器就失效
iptables save
#重启防火墙以便改动生效:(或者直接重启系统)
iptables restart
firewall-cmd方式开通端口
##开启防火墙
systemctl start firewalld
##开放指定端口
firewall-cmd --zone=public --add-port=2181/tcp --permanent
##命令含义:
--zone #作用域
--add-port=2181/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload
说明:因为zookeeper配置了2181、2888、3888端口,后续kafka还会配置其他端口,都需要开通。
启动zookeeper
## 已经在zookeeper目录下
bin/zkServer.sh start conf/zoo.cfg
## 查看zookeeper启动情况
bin/zkServer.sh status
通过查看每台zookeeper启动情况,会发现有1个leader,其余为follower。
第二步:安装kafka
kafka下载:http://kafka.apache.org/
解压文件到/usr/local/software目录下:
tar -zvxf kafka_2.12-2.3.0 -C /usr/local/software
进入kafka目录
cd /usr/local/software/kafka_2.12-2.3.0
创建logs目录
mkdir logs
修改server.properties配置文件
vim /config/server.properties
主要修改以下几个参数:
## 每个broker的唯一标识,在一个集群不能重复
broker.id=0
## kafka监听的端口,默认9092,且这个配置是默认注释的,可改可不改(端口被占用就修改呗),旧版本是port=9092
listeners=PLAINTEXT://:9092
## kafka把所有消息保存在磁盘上,log.dirs指定保存路径,默认是/tmp/kafka-logs,不过在linux中/tmp是临时目录,不安全。当然log.dirs也可指定在/var目录下
log.dirs=/usr/local/software/kafka_2.12-2.3.0/logs
## 连接的zookeeper地址,以下是连接zookeeper集群的配置方式,多个地址以英文逗号隔开
zookeeper.connect=192.168.130.106:2181,192.168.130.107:2181,192.168.130.108:2181
OK!然后启动kafka
bin/kafka-server-start.sh config/server.properties