从零开始搭建Kafka集群遇到的问题

安装kafka

下载kafka_2.12-3.1.0.tgz

链接:https://pan.baidu.com/s/1TWROqaFLmqaXPcEYzUUQuQ
提取码:kx2o

下载得到kafka_2.11-0.11.0.0.tgz文件

使用Xshell将文件传入虚拟机

使用sftp协议,主机ip是在命令行输入ifconfig中ens33中的ip地址,第一次需要输入虚拟机登录账户root和密码
请添加图片描述

解压

tar -xzvf kafka_2.11-0.11.0.0.tgz
mv kafka_2.11-0.11.0.0 /opt/kafka

启动kafka

使用kakfa自带的zookeeper

根据zookeeper.properties配置文件启动zookeeper

cd /opt/kafka
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties

修改kafka配置

vi /opt/kafka/config/server.properties

只有listeners和default.replication.factor需要配置,其他的都有默认配置

broker.id=0 #kafka broker的编号,集群里每个broker的id需不同
listeners=PLAINTEXT://localhost:9092 #listeners是监听地址
log.dirs=/tmp/kafka-logs #日志目录
num.partitions=1 # 新建Topic的默认Partition数量
default.replication.factor=3 #kafka保存消息的副本数

启动kafka

再开一个终端terminal,用于启动kafka,因为没有使用后台启动,如果zookeeper和kafka需要后台启动加个-daemon参数即可如,/opt/kafka/bin/zookeeper-server-start.sh -deamon /opt/kafka/config/zookeeper.properties

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

出现如下情况则启动成功
在这里插入图片描述

使用kafka

再创建一个终端用于使用kafka

创建主题

/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic mytopic

查看主题

/opt/kafka/bin/kafka-topics.sh --list --zookeeper  localhost:2181

生产消息

运行后即可在命令行输入字符串,即要发送的消息

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic

消费消息

需要再开一个终端用于接收消息

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytopic --from-beginning

搭建kafka集群

由于只使用一个虚拟机,所以需要搭建伪集群,所以先将文件复制两次,即得到三个kafka文件夹

cp -a /opt/kafka  /opt/kafka1
cp -a /opt/kafka  /opt/kafka2

搭建zookeeper集群

要搭建kafka集群之前必须搭建zookeeper集群,先修改zookeeper.properties配置文件

修改配置

/opt/kafka/zookeeper.properties

vi /opt/kafka/config/zookeeper.properties

修改clientPort,并在末尾添加server.1、server.2、server.3

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2281
server.1=127.0.0.1:2886:3886
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

/opt/kafka1/zookeeper.properties

vi /opt/kafka1/config/zookeeper.properties
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper1
clientPort=2281
server.1=127.0.0.1:2886:3886
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

/opt/kafka2/zookeeper.properties

vi /opt/kafka2/config/zookeeper.properties

修改clientPort,并在末尾添加server.1、server.2、server.3

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper2
clientPort=2381
server.1=127.0.0.1:2886:3886
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

修改完配置还需要创建myid文件,对应server.1、server.2、server.3配置,myid文件在必须dataDir配置的目录下

mkdir  /tmp/zookeeper
mkdir  /tmp/zookeeper1
mkdir  /tmp/zookeeper2

touch /tmp/zookeeper/myid
touch /tmp/zookeeper1/myid
touch /tmp/zookeeper2/myid

然后将myid文件内容分别改为1、2、3

vi /tmp/zookeeper/myid
vi /tmp/zookeeper1/myid
vi /tmp/zookeeper2/myid

使用netstat检查要开启的九个端口有没有被占用,如果被占用了则需要修改配置

netstat -anp | grep 2181
netstat -anp | grep 2281
netstat -anp | grep 2381
netstat -anp | grep 2886
netstat -anp | grep 3886
netstat -anp | grep 2888
netstat -anp | grep 3888
netstat -anp | grep 2889 
netstat -anp | grep 3889

启动zookeeper集群

创建三个端口,启动之前需要进入管理员权限,或者普通用户被授予可执行权限

/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
/opt/kafka1/bin/zookeeper-server-start.sh /opt/kafka1/config/zookeeper.properties
/opt/kafka2/bin/zookeeper-server-start.sh /opt/kafka2/config/zookeeper.properties

如果出现如下信息,且无报错,则启动集群成功,一般启动一个是会报错的,必须要全部启动,集群才不会报错
在这里插入图片描述

搭建kafka集群

修改配置

/opt/kafka/config/server.properties

vi /opt/kafka/config/server.properties

修改配置为如下,其他配置不要改动

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/tmp/kafka0-logs
zookeeper.connect=localhost:2181,localhost:2281,localhost:2381

需要自己创建/tmp/kafka0-logs文件夹

mkdir /tmp/kafka0-logs

/opt/kafka1/config/server.properties

vi /opt/kafka1/config/server.properties

修改配置为如下,其他配置不要改动

broker.id=1
listeners=PLAINTEXT://localhost:9093
log.dirs=/tmp/kafka1-logs
zookeeper.connect=localhost:2181,localhost:2281,localhost:2381

需要自己创建/tmp/kafka1-logs文件夹

mkdir /tmp/kafka1-logs

/opt/kafka2/config/server.properties

vi /opt/kafka2/config/server.properties

修改配置为如下,其他配置不要改动

broker.id=2
listeners=PLAINTEXT://localhost:9094
log.dirs=/tmp/kafka2-logs
zookeeper.connect=localhost:2181,localhost:2281,localhost:2381

需要自己创建/tmp/kafka2-logs文件夹

mkdir /tmp/kafka2-logs

启动kafka集群

创建三个终端,启动集群,也是需要权限

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
/opt/kafka1/bin/kafka-server-start.sh /opt/kafka1/config/server.properties
/opt/kafka2/bin/kafka-server-start.sh /opt/kafka2/config/server.properties

出现如下情况,说明我们启动的三个服务器kafaka集群的id分别是0、1、2,且已经启动成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用kafka集群

生产消息

运行后即可在命令行输入字符串,即要发送的消息

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic

消费消息

需要再开一个终端用于接收消息,可以看到,发送消息的端口是9092,但是消费消息的端口是9093,9094,也仍然可以消费消息

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic mytopic --from-beginning
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9094 --topic mytopic --from-beginning
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lolxxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值