管理kafka
一.主题操作
使用kafka-topics.sh工具可以执行主题的大部分操作(配置变更部分已被启用并被移动到kafka-configs.sh工具中)。
我们可以用它创建、修改、删除和查看集群里的主题,要使用该工具的全部功能,需要通过 --zookeeper 参数提供zookeeper的连接字符串。
1.创建主题
创建一个名叫 my-topic 的主题,该主题拥有2个副本、8个分区。replication-factor设置主题副本数,此参数不能超过节点数。partitions设置主题分区数。
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --create --topic my-topic --replication-factor 2 --partitions 8
2.列出所有主题
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
3.列出主题详细信息
3.1列出全部主题详细信息
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe
3.2列出某一个主题详细信息
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe --topic my-topic
4.查看没有leader的分区
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe --unavailable-partitions
5.查看主题当前的配置
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe --topics-with-overrides
6.修改主题级别配置
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --topic my-topic --config max.message.bytes=204800
7.删除主题级别配置,使其恢复为默认值
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --topic my-topic --delete-config max.message.bytes
8.删除主题
方法一:
若希望通过该脚本彻底删除主题,则需要在启动kafka时所加载的server.properties文件中配置 delete.topic.enable=true,该配置默认为false。否则执行该脚本并未真正删除主题,而是在 zookeeper的 /admin/delete_topics目录下创建一个与待删除主题同名的节点,将该主题标记为删除状态。
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --delete --topic my-topic
方法二:
手动删除各节点 ${log.dir}目录下该主题分区文件夹,同时登录zookeeper客户端删除待删除主题对应的节点,主题元数据保存在/brokers/topics和/config/topics目录下。
9.增加分区
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --topic my-topic --partitions 16
10.减少分区数量
无法减少分区数量。
因为如果删除了分区,分区里的数据也一并被删除,导致数据不一致。
如果一定要减少分区数量,只能删除整个主题,然后重建。
二.消费者群组
在kafka里,有两个地方保存着消费者群组的消息。对于旧版本的消费者来说,他们的信息保存在zookeeper上,对于新版本的消费者来说,信息保存在broker上。
1.列出并描述群组--旧版本的消费者客户端
列出旧版本的消费者群组
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list
获取旧版本
2.列出并描述群组--新版本的消费者客户端
列出新版本的消费者群组
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9092 --list
获取旧版本消费者群组testgroup的详细信息
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --describe --group testgroup
3.删除群组
从消费者群组testgroup里删除my-top主题的偏移量
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --delete --group testgroup --topic my-topic
三.偏移量管理
1.导出偏移量
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-consumer-groups.sh --zkconnect 127.0.0.1:2181 --group testgroup --output-file offsets
2.导入偏移量
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-consumer-groups.sh --zkconnect 127.0.0.1:2181 --group testgroup --input-file offsets
四.动态配置变更
(1)主题级别配置
1.查看配置
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --describe --entity-type topics entity-name my-topic
2.增加、修改配置
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --entity-type topics entity-name my-topic --alter --add-config flush.messages=2
如果是修改多个配置
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --entity-type topics entity-name my-topic --alter --add-config flush.messages=2,max.message.byes=102400
3.删除配置
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-configs.sh --zookeeper 127.0.0.1:2181 --entity-type topics entity-name my-topic --alter --delete-config flush.messages=2
五.生产者操作
说明:
参数 producer.config 用于加载一个生产者级别相关配置的配置文件,如producer.properties。
参数 producer-property 通过该参数可以直接在启动生产者命令行中设置生产者级别的配置,在命令行中设置的参数将会覆盖所加载配置文件中的参数设置。
参数 property 通过该命令可以设置消息消费者相关的配置。
1.启动生产者
/usr/local/kafka_2.11-0.10.2.1/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic my-topic --property parse.key=true
管理kafka的更多相关文章
- 《Apache kafka实战》读书笔记-管理Kafka集群安全之ACL篇
<Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kaf ...
- 【拆分版】Docker-compose构建Zookeeper集群管理Kafka集群
写在前边 在搭建Logstash多节点之前,想到就算先搭好Logstash启动会因为日志无法连接到Kafka Brokers而无限重试,所以这里先构建下Zookeeper集群管理的Kafka集群. 众 ...
- 数据源管理 | Kafka集群环境搭建,消息存储机制详解
本文源码:GitHub·点这里 || GitEE·点这里 一.Kafka集群环境 1.环境版本 版本:kafka2.11,zookeeper3.4 注意:这里zookeeper3.4也是基于集群模式部 ...
- Kafka笔记8(管理Kafka)
使用kafka-topic.sh工具可以执行大部分操作 创建/修改/删除/查看集群里的主题.要使用全部功能,需要通过--zookeeper参数提供zookeerper连接字符串 创建主题: 创建主 ...
- kafka系列六、java管理kafka Topic
package com.example.demo.topic; import kafka.admin.AdminUtils; import kafka.admin.RackAwareMode; imp ...
- kafka集群管理工具kafka-manager部署安装
一.kafka-manager 简介 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很 ...
- KAFKA 监控管理界面 KAFKA EAGLE 安装
概述 Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.2.3,支持管理多个Kafka集群.管理Kafka主题(包含查看.删除.创建等).消费者组合消费者实例监控 ...
- SparkStreaming和Kafka基于Direct Approach如何管理offset实现exactly once
在之前的文章<解析SparkStreaming和Kafka集成的两种方式>中已详细介绍SparkStreaming和Kafka集成主要有Receiver based Approach和Di ...
- Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)
来自 Confluent 的 Confluent Platform 3.0 消息系统支持使用 Kafka Streams 实现实时的数据处理,这家公司也是在背后支撑 Apache Kafka 消息框架 ...
随机推荐
- hadoop命令详解
一.用户命令1.archive命令 (1).什么是Hadoop archives?Hadoop archives是特殊的档案格式.一个Hadoop archive对应一个文件系统目录. Hadoop ...
- hibernate 学习笔记3
1. 多对多关联: 在双方都要用一个类型为Set的属性保存对方的信息,并在映射配置文件中指定这个属性的名字,并指定中间表.还需要通过<key column=””>来指定自己在中间表中对应的 ...
- vue-cli中使用stylus
1.在package.json文件中写入依赖: "stylus-loader": "^2.5.0", "stylus": "0 ...
- 【转】HttpURLConnection用法详解
原文链接:http://www.blogjava.net/supercrsky/articles/247449.html 针对JDK中的URLConnection连接Servlet的问题,网上有虽然有 ...
- wcf datetime json format
wcf 内置的json序列化工具,有时需要替换,或者特殊情况的处理,需要修改. 我也遇到了Dto属性类型是datetime,json的反序列化 和 序列号不友好. 这是国外网站的一个方案:Replac ...
- table表格中 ,点击checkbox 的value值 相加
<!DOCTYPE html> <html> <head> <title>简单的行列相加求和处理</title> <script sr ...
- easyui焦点离开事件的解决方案
- Springmvc file多附件上传 显示 删除操作
之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于 ...
- 给tomcat7w.exe改名字
在平常使用tomcat的过程中,经常会在自己的电脑上安装两个tomcat,而且使用tomcat的tomcat7w.exe界面比较方便,即 但是两个tomcat的名字一样,也只能启动一个tomcat. ...
- Effective C++ .17 函数调用时的资源管理
以书上的代码为例 processWidget(shared_ptr<Widget>(new Widget), priority()) 虽然使用了智能指针来管理资源但是,由于参数值计算顺序的 ...