Kafka集群部署-最详细解析

2020-01-07  本文已影响0人  会飞的猪_password

设备和资源准备

首先要关闭防火墙
查看防火墙状态: firewall-cmd --state 停止防火墙:systemctl stop firewalld.service 开机禁止防火墙: systemctl disable firewalld.service

服务器分布如下:

服务器 Myid
10.240.1.5 3
10.240.1.6 2
10.240.1.7 1

解压kafka jar包并修改配置

tar -zxvf kafka_2.11-2.3.1.tgz

解压之后进入kafka文件夹
新建文件夹log和zookeeper 目录结构如下


image.png

ps:logs文件夹是系统自动生成的
1、创建myid文件,进入zookeeper之后
vi myid 然后输入

服务器 myid
10.240.1.5 3
10.240.1.6 2
10.240.1.7 1

不同的服务器对应不同的myid,切记重复。
然后在当前文件夹下执行
echo "1" > myid
echo "2" > myid
echo "3" > myid
2、然后进入config文件夹,修改kafka的配置文件 server.properties

broker.id=2 这个在不同的服务器上修改成对应的编号,要和myid保持一致。

listeners=PLAINTEXT://10.240.1.5:9092 
advertised.listeners=PLAINTEXT://10.240.1.5:9092
修改成自己服务器的ip
zookeeper.connect=10.240.1.5:2181,10.240.1.6:2181,10.240.1.7:2181

指定日志生成位置
log.dirs=/u01/app/kafka/kafka_2.11-2.3.1/log/kafka
以上是kafka的配置文件修改
3、修改zookeeper的配置文件 zookeeper.properties

maxClientCnxns=100
tickTime=2000
initLimit=10
syncLimit=5

server.1=10.240.1.5:2888:3888
server.2=10.240.1.6:2888:3888
server.3=10.240.1.7:2888:3888

末尾加上以上配置信息
指定日志生产位置
dataDir=/root/kafka/kafka_2.11-2.3.1/zookeeper dataLogDir=/root/kafka/kafka_2.11-2.3.1/log/zookeeper
4、关键的一步,核对和broker.id保持一致的设置
进入到 /root/kafka/kafka_2.11-2.3.1/log/kafka
然后

image.png

编辑这个文件,里面有broker.id= 修改自己对应的id

至此修改配置的工作已完成,切记每台服务器都不要漏掉

运行zookeeper集群和kafka集群

1、首先是启动每台服务器上的zookeeper
后台启动命令

 nohup ./zookeeper-server-start.sh ../config/zookeeper.properties >../log/zookeeper/zookeeper-run.log 2>&1 &

日志位置路径要修改成自己的路径信息
前台启动命令

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

2、启动每台服务器上的kafka
后台启动命令

 nohup ./kafka-server-start.sh ../config/server.properties  >../log/kafka/kafka-run.log 2>&1 &

前台启动命令

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

3、创建topic
我们把myid=1的作为主节点,在此服务器上创建topic主题

./kafka-topics.sh --create --zookeeper 10.240.1.5:2181,10.240.1.6:2181,10.240.1.7:2181 --replication-factor 1 --partitions 1 --topic test_kafkaEFR

然后去每台服务器检查是否创建成功

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

4、发送消息,测试消息同步
我们在主节点服务器上发送消息

./kafka-console-producer.sh --broker-list 10.240.1.5:9092 ,10.240.1.6:9092 ,10.240.1.7:9092 --topic test_kafkaEFR

然后各自服务器消费消息

./kafka-console-consumer.sh --bootstrap-server 10.240.1.5:9092 ,10.240.1.6:9092 ,10.240.1.7:9092 --topic test_kafkaEFR --from-beginning

如果能同步接收,至此集群部署完成 ps:启动kafka的时候要同时启动,不然会报错
卡夫卡消息读取的客户端


微信图片_20200116101851.png
上一篇 下一篇

猜你喜欢

热点阅读