Kafka基本使用
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消,它的特点有:
- 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
- 高吞吐量 :即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
- 支持通过Kafka服务器和消费机集群来分区消息。
- 支持Hadoop并行数据加载。
一、 Kafka的基本命令操作
1.1 启动Kafka
./bin/kafka-server-start.sh -daemon config/server.properties
1.2 停止Kafka
./bin/kafka-server-stop.sh
1.3 查看主题
./bin/kafka-topics.sh --describe --zookeeper 10.201.60.253:2181 --topic test
1.4 查看主题详细信息
./bin/kafka-topics.sh --describe --zookeeper 10.201.60.253:2181 --topic test
1.5 删除主题
./bin/kafka-topics.sh --zookeeper 10.201.60.253:2181 --delete --topic test
如果在Kafka配置文件设置了delete.topic.enable=true,直接久会把主题及数据都删除,但没有设置,则需要手动登陆zookeeper进行删除,方法是:
1.登陆zookeeper:$ZOOKEEPER_HOME/bin/zkCli.sh
2.查看Kafka主题:ls /brokers/topics
3.删除zookeeper注册的主题:
rmr /brokers/topics/主题名
rmr /config/主题名
rmr /admin/主题名
4.然后在每台Kafka的Broker节点上log.dirs配置目录下的主题删除
1.6 向主题发送数据
./bin/kafka-console-producer.sh --broker-list 10.201.60.253:9092 --topic test
1.7 从主题接收数据
./bin/kafka-console-consumer.sh --zookeeper 10.201.60.253:2181 --topic test
1.8 增加Kafka分区
./bin/kafka-topics.sh --alter --topic test --zookeeper 10.202.62.75:2181 --partitions 5
二、其他一些配置
2.1 主题自动删除配置
log.retention.hours=1
log.cleaner.enable=true
log.cleanup.policy = delete