更新时间:2022-12-14 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
管理Kafka主题
操作场景
用户可以根据业务需要,使用集群客户端管理Kafka的主题。启用Kerberos认证的集群,需要拥有管理Kafka主题的权限。
前提条件
已安装客户端。
操作步骤
- 查看ZooKeeper角色实例的IP地址。
    
    
记录ZooKeeper角色实例其中任意一个的IP地址即可。
 - 根据业务情况,准备好客户端,登录安装客户端的节点。
    
    
请根据客户端所在位置,参考章节,登录安装客户端的节点。
 - 执行以下命令,切换到客户端目录,例如“/opt/client/Kafka/kafka/bin”。
    
    
cd /opt/client/Kafka/kafka/bin
 - 执行以下命令,配置环境变量。
    
    
source /opt/client/bigdata_env
 - 执行以下命令,进行用户认证。(普通模式跳过此步骤)
    
    
kinit 组件业务用户
 - 使用kafka-topics.sh管理Kafka主题。
    
    
- 创建主题:
      
Topic的Partition自动划分时,默认根据节点及磁盘上已有的Partition数进行均衡划分,如果期望根据磁盘容量进行Partition划分,那么需要修改Kafka服务配置“log.partition.strategy”为“capacity”。
- ./kafka-topics.sh --create --topic 主题名称 --partitions 主题占用的分区数 --replication-factor 主题的备份数 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
 - ./kafka-topics.sh --create --topic 主题名称 --partitions 主题占用的分区数 --replication-factor 主题的备份数 --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties
 
 - 罗列主题:
      
- ./kafka-topics.sh --list --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
 - ./kafka-topics.sh --list --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties
 
 - 查看主题:
      
- ./kafka-topics.sh --describe --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka --topic 主题名称
 - ./kafka-topics.sh --describe --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties --topic 主题名称
 
 - 修改主题:
      
- ./kafka-topics.sh --alter --topic 主题名称 --config 配置项=配置值 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
 
 - 扩展分区:
      
- ./kafka-topics.sh --alter --topic 主题名称 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka --command-config Kafka/kafka/config/client.properties --partitions 扩展后分区个数
 - ./kafka-topics.sh --alter --topic 主题名称 --bootstrap-server Kafka集群IP:21007 --command-config Kafka/kafka/config/client.properties --partitions 扩展后分区个数
 
 - 删除主题:
      
- ./kafka-topics.sh --delete --topic 主题名称 --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
 - ./kafka-topics.sh --delete --topic 主题名称 --bootstrap-server Kafka集群IP:21007 --command-config ../config/client.properties
 
 
 - 创建主题:
      
 
   父主题: 使用Kafka