Kafka3.1安装配置,配置Kafka集群,Zookeeper集群

1.下载Kafka安装包

Kafka官网下载地址:https://kafka.apache.org/downloads

2.解压压缩包

tar -zxvf kafka_2.12-3.1.0.tgz -c kafka

3.进入配置文件目录

cd kafka/config

4.配置kafka配置文件

vim server.properties

注:log.dirs文件原本的存储路径在tmp文件夹下,该文夹下数据可能会被清除。所以可以在kafka安装目录下创建一个日志文件夹,将log.dirs修改为日志文件夹全路径。
每台服务器都需要进行如下配置,但broker.id值不能相同,它是全局唯一标识,建议从0开始。
修改配置文件的如下选项:

#broker 的全局唯一编号,不能重复。若有多台服务器,每台的broker.id都应该不同,建议从0开始。在改变IP地址,不改变broker.id的话不会影响consumers
broker.id=0

#kafka 运行日志存放的路径
#这个log.dir用来存放Kafka的数据,不仅是日志
log.dirs=/home/download/kafka/logs

#配置连接 Zookeeper 集群地址
#若有多台或少于3太,可以增加或减少服务器IP:端口号,中间以,分隔
zookeeper.connect=1号服务器IP:2181,2号服务器IP:2181,3号服务器IP:2181

如果是kafka集群,应该增加如下配置,否则消费或生产时候会不成功。集群中每个服务器的server.properties文件都应该加上该配置

新增如下选项:

host.name=本服务器IP
listeners=PLAINTEXT://本服务器IP:9092
advertised.listeners=PLAINTEXT://本服务器IP:9092

请添加图片描述

5.启动Zookeeper集群

(1)配置zookeeper配置文件

每台服务器都要进行如下配置:

与kafka日志文件夹一样,在kafka安装目录下创建一个zookeeper的数据存储文件夹,其默认在tmp文件夹下会被清除,所以需要自定义一个路径。将dataDir属性修改为日志文件夹全路径

加上ticktime、initLimit、syncLimit属性,然后指定zookeeper集群中每台服务器的ip:2888:3888

2888端口用于内部选举投票,3888端口用于数据传递和广播

dataDir=/home/download/kafka/zookeeperlogs
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080

tickTime=2000
initLimit=5
syncLimit=2
server.1=1号服务器IP:2888:3888
server.2=2号服务器IP:2888:3888
server.3=3号服务器IP:2888:3888

(2)在上面创建的zookeeper数据存储文件夹中创建myid文件

进入自己创建的zookeeper日志文件夹

cd /home/download/kafka/zookeeperlogs

创建myid文件

vim myid
第一台服务器输入1,第二台服务器输入2,第三台服务器输入3

在这里插入图片描述

查看myid文件确认一下
在这里插入图片描述

(3)启动zookeeper

返回kafka安装目录,执行以下命令

./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

(4)注意事项

启动第一台时查看日志可以发现被拒绝连接。这是由于ZooKeeper集群启动的时候,每个节点都试图去连接集群中的其它节点,先启动的肯定连不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的。继续将其他服务器的zookeeper启动,他们会自动选举一个leader,后续也就不会警告拒绝连接了。

[2022-04-18 19:36:47,630] WARN Cannot open channel to 3 at election address /192.168.196.189:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:383)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:457)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
[2022-04-18 19:36:49,230] INFO Notification time out: 3200 (org.apache.zookeeper.server.quorum.FastLeaderElection)
[2022-04-18 19:36:49,231] WARN Cannot open channel to 3 at election address /192.168.196.189:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:383)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:457)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

6.启动Kafka

(1)切换到启动目录

cd /home/admin/kafka/bin

(2)启动kafka

注:kafka启动前一定要确保zookeeper已经启动,不然会启动失败。

./kafka-server-start.sh -daemon …/config/server.properties

(3)注意事项

若你的服务武器内存太少,kafka启动时可能会报错,显示内存不足。因为其默认启动内存为1G。
修改启动文件

vim kafka-server-start.sh

在这里插入图片描述将该配置修改为 -Xmx256M -Xms256M

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值