一.主题操作
使用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的更多相关文章

  1. 《Apache kafka实战》读书笔记-管理Kafka集群安全之ACL篇

    <Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kaf ...

  2. 【拆分版】Docker-compose构建Zookeeper集群管理Kafka集群

    写在前边 在搭建Logstash多节点之前,想到就算先搭好Logstash启动会因为日志无法连接到Kafka Brokers而无限重试,所以这里先构建下Zookeeper集群管理的Kafka集群. 众 ...

  3. 数据源管理 | Kafka集群环境搭建,消息存储机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Kafka集群环境 1.环境版本 版本:kafka2.11,zookeeper3.4 注意:这里zookeeper3.4也是基于集群模式部 ...

  4. Kafka笔记8(管理Kafka)

    使用kafka-topic.sh工具可以执行大部分操作   创建/修改/删除/查看集群里的主题.要使用全部功能,需要通过--zookeeper参数提供zookeerper连接字符串 创建主题: 创建主 ...

  5. kafka系列六、java管理kafka Topic

    package com.example.demo.topic; import kafka.admin.AdminUtils; import kafka.admin.RackAwareMode; imp ...

  6. kafka集群管理工具kafka-manager部署安装

    一.kafka-manager 简介 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很 ...

  7. KAFKA 监控管理界面 KAFKA EAGLE 安装

    概述 Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.2.3,支持管理多个Kafka集群.管理Kafka主题(包含查看.删除.创建等).消费者组合消费者实例监控 ...

  8. SparkStreaming和Kafka基于Direct Approach如何管理offset实现exactly once

    在之前的文章<解析SparkStreaming和Kafka集成的两种方式>中已详细介绍SparkStreaming和Kafka集成主要有Receiver based Approach和Di ...

  9. Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)

    来自 Confluent 的 Confluent Platform 3.0 消息系统支持使用 Kafka Streams 实现实时的数据处理,这家公司也是在背后支撑 Apache Kafka 消息框架 ...

随机推荐

  1. 设置全局theme及读取theme方法

    在web.config中设置了默认的Theme,其部分如下的配置节点: <system.web> <pages theme="Default" controlRe ...

  2. Redis介绍与安装

    一.redis简介 (一)什么是redis 1.redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 内存数据库. 2.特点:读写性能强悍 支持丰 ...

  3. PHP学习8——图像处理

    主要内容: 加载GD库 创建图像 绘制点,线,矩形,多边形,椭圆,弧线 绘制文字 通过GD库生成验证码 其实吧,学习图像方法的最大作用,好像就是为了制作验证码. 所以此专题,不如叫做制作验证码. 1. ...

  4. [javaEE] 三层架构案例-用户模块(二)

    使用junit测试框架,测试查找用户和添加用户功能 com.tsh.test.xmlUserDaoTest package com.tsh.test; import org.junit.Test; i ...

  5. 工厂模式(Factory Pattern)

    一.工厂模式(Factory Pattern)的介绍 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使 ...

  6. Oracle Spatial GIS相关研究

    1.Oracle Spatial 概念相关 Oracle Spatial 是Oracle 数据库强大的核心特性,包含了用于存储矢量数据类型.栅格数据类型和持续拓扑数据类型的原生数据类型.Oracle ...

  7. python 中str字符串 和list列表基本操作总结

    s = '#afsfdf222#' print(s.capitalize()) # 首字母大写其他字母小写 print(s.center(20, '%')) # 居中并在空白处添加指定字符 print ...

  8. centos jdk8 install

    0. 装了好多遍jdk 以前一直是 vi /etc/profile文件 追加 环境变量 ,仔细一看 profile文件提示 尽量不要修改!!! so... 1. 下载jdk8.tar.gz 2. 卸载 ...

  9. javascript实现SHA1算法

    web里面密码直接传到后台是不安全的,有时候需要进行加密,找到一个不错的javascript SHA1算法: <!DOCTYPE html> <html lang="en& ...

  10. 原生js操作DOM基础-笔记

    原文参考http://mp.weixin.qq.com/s?__biz=MzU3MDA0NTMzMA==&mid=2247485490&idx=1&sn=15197b4b53e ...