kafka设置群集 必要前提:zookeeper的集群是正常。
准备三台虚拟机
确定 三台主机IP
================================克隆三台虚拟机
1.修改ip地址
1.1 都是克隆的ip地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改ip地址 192.168.96.129 /200 201 202
删除配置: rm -rf /etc/udev/rules.d/70-persistent-net.rules
service network restart
-------------------------------------
重启虚拟机 reboot
zookeeper 搭建zookeeper的集群
-
zookeeper的配置文件 zoo.cfg
1.1 每个文件都加入如下内容server.1=192.168.96.200:2888:3888
server.2=192.168.96.201:2888:3888
server.3=192.168.96.202:2888:3888
1.2为每个zookeeper创建data目录下面 指定的myid文件 内容就是对应的server.1 .后边的名字 1 2 3
[root@localhost Desktop]# cd /opt/zookeeper-3.4.14/data/
[root@localhost data]# vim myid
文件中的内容就是 1或者2或者3—>
2.修改kafka集群配置
listeners=PLAINTEXT://192.168.96.200:9092
host.name=192.168.96.200
2.1 第一台机器:192.168.96.200
修改 server.properties
2.1.1 进入kafka的config目录
2.1.1.1 vim server.properties
修改内容如下:
broker.id=0 #保证每个broker唯一,第一台可以不修改默认为0,后面两台需要修改,如改为1和2
num.partitions=3 #分区数量一般与broker保持一致
listeners=PLAINTEXT://192.168.96.200:9092 #修改为本机ip
zookeeper.connect=192.168.96.200:2181,192.168.96.201:2181,192.168.96.202:2181
#配置三台服务zookeeper连接地址
host.name=192.168.96.200 #新增host.name值,分别设为不同的值(3台机器根据自己的ip设置)
log.dirs==/usr/local/kafka/kafka-0-logs #修改log.dirs目录为之前自定义的目录
2.2 第二台机器:192.168.96.201
修改 server.properties
2.2.1 进入kafka的config目录
2.2.1.1 vim server.properties
修改内容如下:
broker.id=1 #保证每个broker唯一,为1
num.partitions=3 #分区数量一般与broker保持一致
listeners=PLAINTEXT://192.168.96.201:9092 #修改为本机ip
zookeeper.connect=192.168.96.200:2181,192.168.96.201:2181,192.168.96.202:2181
#配置三台服务zookeeper连接地址
host.name=192.168.96.201
#新增host.name值,分别设为不同的值(3台机器根据自己的ip设置)
log.dirs==/usr/local/kafka/kafka-0-logs #修改log.dirs目录为之前自定义的目录
2.2.2 克隆的原因导致 原有第一台克隆的kafka 的日志文件中有一个meta.properties broker.id=0; 修改为 当前kakfa的server.properties broker.id=1;
/usr/local/kafka/kafka-0-logs/meta.properties
--------------------------------------------------
vim meta.properties
broker.id=1
提示:
[root@localhost Desktop]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost Desktop]# vim /usr/local/kafka/config/server.properties
[root@localhost Desktop]# vim /usr/local/kafka/kafka-0-logs/meta.properties
2.3 第三台机器:192.168.96.202
修改 server.properties
2.3.1 进入kafka的config目录
2.3.1.1 vim server.properties
修改内容如下:
broker.id=2 #保证每个broker唯一,为2
num.partitions=3 #分区数量一般与broker保持一致
listeners=PLAINTEXT://192.168.96.202:9092 #修改为本机ip
zookeeper.connect=192.168.96.200:2181,192.168.96.201:2181,192.168.96.202:2181
#配置三台服务zookeeper连接地址
host.name=192.168.96.201 #新增host.name值,分别设为不同的值(3台机器根据自己的ip设置)
log.dirs==/usr/local/kafka/kafka-0-logs #修改log.dirs目录为之前自定义的目录
2.3.2 克隆的原因导致 原有第一台克隆的kafka 的日志文件中有一个meta.properties broker.id=0; 修改为 当前kakfa的server.properties broker.id=2;
/usr/local/kafka/kafka-0-logs/meta.properties
--------------------------------------------------
vim meta.properties
broker.id=2
单个 集群主体
/usr/local/kafka/bi
n/kafka-topics.sh --create --bootstrap-server 192.168.96.130:9092 --replication-factor 1 --partitions 1 --topic 1701A
单个 生产者
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.96.130:9092 --topic 1701A 单个 消费者
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.96.130:9092 --topic 1701A --from-beginning
//删除主题
/usr/local/kafka/bin/kafka-topics.sh --delete --topic chjy --zookeeper 192.168.96.130:2181
3.演示:第一步,启动三台电脑上的zookeeper
[root@localhost kafka] zkServer.sh start
第二步,启动三台电脑上的kafk
[root@localhost~]#/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
第三步:集群创建主题:/usr/local/kafka/bin/kafka-topics.sh -create --bootstrap-server 192.168.96.200:9092,192.168.96.201:9092,192.168.96.202:9092 -replication-factor 3 --partitions 3 --topic chjy
第四步:集群查看主题:/usr/local/kafka/bin/kafka-topics.sh -list --bootstrap-server 192.168.96.200:9092
第五步:集群生产者:/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.96.200:9092,192.168.96.201:9092,192.168.96.202:9092 --topic chjy
发送数据
第六步:集群消费者:/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.96.200:9092,192.168.96.201:9092,192.168.96.202:9092 --topic chjy --from-beginning
在另外两台电脑上运行消费者,看是否接受到了消息