kafka集群部署
kafka设置群集 必要前提:zookeeper的集群是正常。
准备三台虚拟机
确定 三台主机IP
1.zookeeper集群搭建
1.2 zookeeper 搭建zookeeper的集群
1.2.1. . zookeeper的配置文件 zoo.cfg
每个文件都加入如下内容
server.1=192.168.25.131:2888:3888
server.2=192.168.25.164:2888:3888
server.3=192.168.25.165:2888:3888
1.2.2 为每个zookeeper创建data目录下面
在zoo.cfg的配置文件中由:dataDir=/opt/zookeeper/zookeeperData
指定的myid文件 内容就是对应的server.1 .后边的名字 1 2 3
[root@localhost Desktop]# cd /opt/zookeeper-3.4.9/zookeeperData/
[root@localhost data]# echo “1”>myid
文件中的内容就是 1或者2或者3—>
echo “1”>/opt/zookeeper/zookeeperData/myid
echo “2”>/opt/zookeeper/zookeeperData/myid
echo “3”>/opt/zookeeper/zookeeperData/myid
2.修改kafka集群配置
listeners=PLAINTEXT://192.168.25.131:9092
host.name=192.168.73.200
2.1 第一台机器:192.168.73.200
修改 server.properties
2.1.1 进入kafka的config目录
2.1.1.1 vim server.properties
修改内容如下:
broker.id=0
num.partitions=3
listeners=PLAINTEXT://192.168.25.131:9092
zookeeper.connect=192.168.25.131:2181,192.168.25.164:2181,192.168.25.165:2181
host.name=192.168.25.131
配置过了
log.dirs/usr/local/kafka/kafka-0-logs
2.2 第二台机器:192.168.73.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.73.201:9092 #修改为本机ip
zookeeper.connect=192.168.73.200:2181,192.168.73.201:2181,192.168.73.202:2181
#配置三台服务zookeeper连接地址
host.name=192.168.73.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.73.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.73.202:9092 #修改为本机ip
zookeeper.connect=192.168.73.200:2181,192.168.73.201:2181,192.168.73.202:2181
#配置三台服务zookeeper连接地址
host.name=192.168.73.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
kafka命令操作
3.演示:
第一步,启动三台电脑上的zookeeper
[root@localhost kafka] zkServer.sh start
第二步,启动三台电脑上的kafka
[root@localhost~]# /opt/kafka_2.11-1.0.0/bin/kafka-server-start.sh /opt/kafka_2.11-1.0.0/config/server.properties
第三步:集群创建主题:/opt/kafka_2.11-1.0.0/bin/kafka-topics.sh -create --zookeeper 192.168.25.131:2181,192.168.25.164:2181,192.168.25.165:2181 -replication-factor 3 --partitions 3 --topic gaofei
第四步:集群查看主题:/opt/kafka_2.11-1.0.0/bin/kafka-topics.sh -list --zookeeper 192.168.25.131:2181
第五步:集群生产者:/opt/kafka_2.11-1.0.0/bin/kafka-console-producer.sh --broker-list 192.168.25.131:9092,192.168.25.164:9092,192.168.25.165:9092 --topic gaofei
发送数据
第六步:集群消费者:/opt/kafka_2.11-1.0.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.25.131:9092,192.168.25.164:9092,192.168.25.165:9092 --topic gaofei --from-beginning
在另外两台电脑上运行消费者,看是否接受到了消息
kafka配置文件
server.properties
producer.properties
consumer.properties