Kafka介绍
在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。
KAFKA + STORM +REDIS
1、Apache Kafka是一个开源消息系统,用Scala写成。
2、Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。
3、Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接收者成为Consumer,此外Kafka集群由多个Kafka实例组成,每个实例(server)称为broker。
4、无论是kafka集群,还是Producer和Consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。
Kafka核心组件
Topic :消息根据Topic进行归类
Producer:发送消息者
Consumer:消息接受者
broker:每个kafka实例(server)
Zookeeper:依赖集群保存meta信息。
Kafka集群部署(前提:先部署好zookeeper集群)
1、下载安装包
http://kafka.apache.org/
2、上传并解压安装包
tar -zxvf /root/kafka_2.11-0.8.2.2.tgz -C /export/servers/
cd /export/servers/
ln -s kafka_2.11-0.8.2.2 kafka
3、修改配置文件
vi /export/servers/kafka/config/server.properties
配置一下内容:
4、分发安装包
scp -r /export/servers/kafka_2.11-0.8.2.2 storm2:/export/servers
scp -r /export/servers/kafka_2.11-0.8.2.2 storm3:/export/servers
然后分别在各机器上创建软连
cd /export/servers/
ln -s kafka_2.11-0.8.2.2 kafka
5、再次修改配置文件(重要)
依次修改各服务器上配置文件的broker.id,分别是0,1,2,不得重复!
6、启动集群(先启动zookeeper集群)
依次在每个节点上的/kafka/路径下启动Kafka:
bin/kafka-server-start.sh config/server.properties
Kafka常用操作命令
- 查看当前服务器中的所有topic
bin/kafka-topics.sh --list --zookeeper zk01:2181
- 创建topic
./kafka-topics.sh --create --zookeeper mini1:2181 --replication-factor 1 --partitions 3 --topic first
- 删除topic
sh bin/kafka-topics.sh --delete --zookeeper zk01:2181 --topic test
需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
- 通过shell命令发送消息
kafka-console-producer.sh --broker-list kafka01:9092 --topic itheima
- 通过shell消费消息
sh bin/kafka-console-consumer.sh --zookeeper zk01:2181 --from-beginning --topic test1
- 查看消费位置
sh kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper zk01:2181 --group testGroup
- 查看某个Topic的详情
sh kafka-topics.sh --topic test --describe --zookeeper zk01:2181