准备:3台虚拟机,配置好zookeeper集群:下载kafka的tar包,解压:配置环境变量
进入config中的server.properties改配置文件
broker.id=1 //broker的标识,id不能重复
log.dirs=/usr/local/kafka/kafka-logs //日志目录
num.partitions=1 //分区数目
zookeeper.connect=master:2181,slave1:2181,slave2:2181 //zookeeper集群
scp到其他2台虚拟机,broker.id都不能相同
启动验证
kafka-server-start.sh /usr/local/kafka/config/server.properties >> /usr/local/kafka_nohup.log 2>&1 &
jps验证kafka进程
查看所有的topic
kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
创建一个主题
[root@master config]# kafka-topics.sh --create --zookeeper master :2181,slave1:2181,slave2:2181 --replication-factor 2 --partitions 2 --topic secondtopic
创建一个名字为secondtopic的topic,副本数是2,分区是2
查看topic的描述信息
[root@master config]# kafka-topics.sh --describe --zookeeper master:2181,slave1:2181,slave2:2181 --topic secondtopic
启动一个生产者
kafka-console-producer.sh --broker-list master:9092 --topic secondtopic
启动一个消费者
kafka-console-consumer.sh --zookeeper master:2181 --from-beginning --topic secondtopic
这时,消费者可以接受生产者发送的所有数据
附: kafka常用命令
创建topic
kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1--partitions 1 --topic test123
查看topic信息
kafka-topics.sh --describe --topic test123 --zookeeper master:2181,slave1:2181,slave2:2181
修改topic分区
kafka-topics.sh --alter --topic test123 --partitions 2 --zookeeper master:2181,slave1:2181,slave2:2181
删除topic
kafka-run-class.shkafka.admin.DeleteTopicCommand --topic test1 --zookeeper master:2181,slave1:2181,slave2:2181
只是删除了zookeeper中元数据,数据文件还需手动删除。