• 管理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


     

  • 相关阅读:
    理解Objective-C Runtime (六)super
    理解Objective-C Runtime (五)协议与分类
    理解Objective-C Runtime(四)Method Swizzling
    理解Objective-C Runtime(三)消息转发机制
    Objective-C Runtime(二)消息传递机制
    matlab数学实验--第一章
    Python之json模块
    Python之os模块和sys模块
    Python之小练习
    vuedevtools 离线安装
  • 原文地址:https://www.cnblogs.com/l10n/p/9548461.html
Copyright © 2020-2023  润新知