kafka单机多节点部署

纵然是瞬间 提交于 2020-03-12 17:22:17

zookeeper版本:apache-zookeeper-3.5.5-bin.tar.gz
kafka版本:kafka_2.12-2.2.1.tgz

一、zookeeper部署
1)解压
tar -zxf apache-zookeeper-3.5.5-bin.tar.gz

2)创建路径
mkdir zookeeper_cluster
mkdir zookeeper-1
mkdir zookeeper-2
mkdir zookeeper-3
在这里插入图片描述
3)复制解压后的zookeeper至对应的路径
cp -r apache-zookeeper-3.5.5/* zookeeper-1
cp -r apache-zookeeper-3.5.5/* zookeeper-2
cp -r apache-zookeeper-3.5.5/* zookeeper-3

4)创建数据文件存放路径及日志路径
mkdir zookeeper-1/data
mkdir zookeeper-2/data
mkdir zookeeper-3/data

mkdir zookeeper-1/logs
mkdir zookeeper-2/logs
mkdir zookeeper-3/logs

5)创建myid文件
echo ‘1’ > zookeeper-1/data/myid
echo ‘2’ > zookeeper-2/data/myid
echo ‘3’ > zookeeper-3/data/myid

6)修改配置文件
cp zookeeper-1/conf/zoo_sample.cfg zookeeper-1/conf/zoo.cfg
vim zookeeper-1/conf/zoo.cfg

在这里插入图片描述
zookeeper-2,zookeeper-3路径下进行同样修改,注意其中的clientPort、dataDir、dataLogDir需要进行区分。

7)启动
vim zkCluster.sh

在这里插入图片描述
启动:./zkCluster.sh start
查看状态:./zkCluster.sh status
停止:./zkCluster.sh stop

二、kafka部署
1)解压
tar -zxf kafka_2.12-2.2.1.tgz
mv kafka_2.12-2.2.1 kafka

2)创建数据文件路径
mkdir kafka/data-0
mkdir kafka/data-1
mkdir kafka/data-2

3)修改配置文件
cp kafka/config/server.properties kafka/config/server-0.properties
cp kafka/config/server.properties kafka/config/server-1.properties
cp kafka/config/server.properties kafka/config/server-2.properties

vim kafka/config/server-0.properties

#配置zookeeper连接
zookeeper.connect=192.168.0.99:2181,192.168.0.99:12181,192.168.0.99:22181
#每个Kafka Broker应该配置一个唯一的ID 
broker.id=0 
#因为是在同一台机器上开多个Broker,所以使用不同的端口号区分
port=9092 
#如果有多个网卡地址,也可以将不同的Broker绑定到不同的网卡  
host.name=192.168.0.99
#因为是在同一台机器上开多个Broker,需要确保使用不同的日志目录来避免冲突 
log.dirs=/home/xxx/kafka/data-0

修改server-1.properties、server-2.properties ,注意修改其中的broker.id,port,log.dirs。

4)启动
vim kafka_start.sh
在这里插入图片描述

5)停止
bin/kafka-server-stop.sh

三、测试
1)创建主题

bin/kafka-topics.sh -topic test -create -partitions 1 -replication-factor 3 -zookeeper 192.168.0.99:2181

#--zookeeper是集群列表,可以指定所有节点,也可以指定为部分列表
#--replication-factor 为复制数目,数据会自动同步到其他broker上,防止某个broker宕机数据丢失
#--partitions 一个topic可以切分成多个partition,一个消费者可以消费多个partition,但一个partition只能被一个消费者消费

2)创建生产者

./kafka-console-producer.sh -broker-list 192.168.0.99:9092 -topic test

3)新开ssh会话窗口,创建消费者

./kafka-console-consumer.sh --bootstrap-server 192.168.0.99:9092 --topic test --from-beginning

在生产者窗口输入内容,在消费者窗口验证是否接收到消息

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!