kafka是分布式的,需要多台机器,并且保证机器之间是免密登录,同时需要用zookeeper集群负责管理
1、kafka版本选择,从官网下载即可,我这里用的是 kafka_2.11-0.11.0.3.tgz
2、brokers节点分配,注意一定是奇数台节点
3、解压并软链
tar -zxvf /software/kafka_2.11-0.11.0.3.tgz
ln -sf kafka_2.11-0.11.0.3/ kafka
4、配置server.properties
vim /software/kafka/config/server.properties
修改如下内容
broker.id=0 注意:这里要唯一的Integer类型
port=9092 kafka写入数据的端口
log.dirs=/opt/data/kafka-logs 真实数据存储的位置
zookeeper.connect=node1:2181,node2:2181,node3:2181 zookeeper集群
5、节点保持一致
将kafka整个文件分发到其他节点或者其他方式保证配置一致(除broker.id)
其他节点的server.properties的broker.id
顺序分别为1,2等等
6、可以创建一个kafka集群启动脚本
在每台节点某个路径下创建startKafka.sh脚本
vim startKafka.sh
内容如下
nohup bin/kafka-server-start.sh config/server.properties > kafkalog.txt 2>&1 &
注意:以上路径可以写全路径,可以在不同路径中,写全路径中执行startKafak.sh
chmod +x ./startKafka.sh 修改权限
在每台节点中启动Kafka,/software/kafka/startKafka.sh
jps查看kafka是否启动,jps有kafka进程就可以
7、启动
先启动zk集群,然后执行编写的kafka启动脚本
kafka查看全部topic/创建
...路径/kafka/bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --list/create
kafka详细查看某个topic
...路径/kafka/bin/kafka-topics.sh --describe --zookeeper node1:2181,node2:2181,node3:2181 --topic topic_name
kafka命令消费
...路径/kafka/bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --from-beginning --topic topic_name
...路径/kafka/bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic topic_name --offset latest --partition 0 | grep fl_appid
消费组,查看
...路径/kafka/bin/kafka-consumer-groups.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --group topic_name --describe