Linux 部署:kafka(虚拟机集群)

参考文档:https://blog.csdn.net/wt334502157/article/details/116518259

1 节点规划

节点 ip
vm81 10.99.0.81
vm82 10.99.0.82
vm83 10.99.0.83

2 部署kafka集群

先在vm81上进行安装、配置。

  • 下载、安装

wget https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz

sudo tar axf kafka_2.11-2.4.1.tgz -C /usr/soft/
cd /usr/soft/
mv kafka_2.11-2.4.1/ kafka
  • 修改 kafka 配置文件
cd kafka/config
vi server.properties
"""
broker.id=1
delete.topic.enable=true 
num.network.threads=3   
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/usr/soft/kafka/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824   
log.retention.check.interval.ms=300000
zookeeper.connect=vm81:2181,vm82:2181,vm83:2181/kafka 
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
"""
# 注意,broker.id=1 这个id每个kafka唯一
# 注意:根据实际修改 zookeeper.connect= 

  • 拷贝至vm82、vm83
sudo scp -r /usr/soft/kafka/ vm82:/usr/soft/

sudo scp -r /usr/soft/kafka/ vm83:/usr/soft/

3 修改配置

所有节点都需配置。

  • 设置 KAFKA_HOME变量、并生效

vi /etc/profile
增加如下两行:

    export KAFKA_HOME=/usr/soft/kafka
    export PATH=$PATH:$KAFKA_HOME/bin

source /etc/profile

  • 修改 vm82、vm83 上 kafka 配置文件
# vm82
sudo vi /usr/soft/kafka/config/server.properties
broker.id=2

# vm83
sudo vi /usr/soft/kafka/config/server.properties
broker.id=3

  • 启动服务

要先确认 zk 状态。

$ sudo netstat -anp | grep 2181
tcp        0      0 10.99.0.81:46584        10.99.0.81:2181         ESTABLISHED 3725/java

kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

4 验证集群状态

# 创建一个topic
bin/kafka-topics.sh --create --zookeeper vm1:2181,vm2:2181,vm3:2181/kafka --replication-factor 1 --partitions 1 --topic test

# 发几个消息
bin/kafka-console-producer.sh --broker-list  localhost:9092 --topic test
>aa
>bb
>cc
>^C

# 启动consumer消费消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
aa
bb
cc
^CProcessed a total of 3 messages

5 问题处理

  • 安装java

sudo yum install java-1.8.0-openjdk* -y

# 对应关系
Kafka 0.8.x:  推荐使用 Java 7。
Kafka 0.9.x:  需要使用 Java 8。
Kafka 0.10.x: 推荐使用 Java 8,但也支持 Java 7。
Kafka 0.11.x: 需要使用 Java 8。
Kafka 1.0.x:  需要使用 Java 8。
Kafka 2.x:    需要使用 Java 8。
  • /bin/kafka-topics.sh --create 报错:1 larger than available brokers: 0

参考文档:此问题处理

命令中指定的 --zookeeper 参数需要与配置文件中 zookeeper.connect的配置一致,比如:

错误示范:bin/kafka-topics.sh --create --zookeeper vm81:2181,vm82:2181,vm83:2181 --replication-factor 1 --partitions 1 --topic test
正确操作:bin/kafka-topics.sh --create --zookeeper vm81:2181,vm82:2181,vm83:2181/kafka --replication-factor 1 --partitions 1 --topic test

附录

posted @ 2023-03-22 20:20  武平宁  阅读(150)  评论(0)    收藏  举报